블로그 이름

[TOMCAT] JAVA 버전 다르게 톰캣 실행하는 방법 본문

개발/기타

[TOMCAT] JAVA 버전 다르게 톰캣 실행하는 방법

Hide 2025. 11. 16. 19:48

하나의 서버에서 여러 프로그램을 띄워야 할 때, 각 프로그램이 요구하는 Java 버전이 다를 경우가 있다.

예를 들어 프로그램 A가 자바 1.8, B가 자바 11을 사용한다면 시스템 전체 Java 버전을 변경하며 실행할 수도, 서버에 하나의 JAVA_HOME 만 둘 수도 없다.

 

이 경우 톰캣 인스턴스 별로 JAVA_HOME 을 다르게 설정하여 실행하면 된다.

 

우선 서버에 자바 8과 자바 11 둘 다 설치한다.

C:\Java\jdk1.8.0_202
C:\Java\jdk-11.0.22

 

이후 톰캣을 2개 설치한다.

C:\tomcatA - Java 8을 사용할 프로그램
C:\tomcatB - Java 11을 사용할 프로그램

 

이후 톰캣의 bin 폴더 안에 setenv.bat 파일을 생성 (java 버전은 경로에 맞게 적어주면 된다. 톰캣 둘 다 추가해주면 됨)

set "JAVA_HOME=C:\Java\jdk1.8.0_202"
set "JRE_HOME=C:\Java\jdk1.8.0_202"

 

이후 startup.bat 파일 실행 시, logs 폴더 내 catalina.out 로그 파일에서 자바 버전을 확인 할 수 있다. 각 버전으로 정상 출력된다면 성공이다.

 

해당 상태에서 바로 실행한다면 포트 충돌 오류가 난다. (톰캣 기본 포트 8080)

conf 폴더 내의 server.xml 서버 수정 필요

<Connector port="8080" />

<Server port="8005"/>

해당 부분의 포트를 tomcatA와 tomcatB가 겹치지 않도록 서로 다른 포트로 변경해주면 된다.