본문 바로가기
Web Development/OS&WEB&WAS

[tomcat] 톰캣 2개 이상 설치시 특정 jdk 버전 설정 방법 Feat.setenv

by 피치피치어피치 2025. 9. 12.
반응형

톰캣은 기본적으로 JAVA_HOME이나 JRE_HOME 환경변수를 참조해서 사용할 JDK를 결정한다.

 

서버에 여러 JDK가 깔려 있을 때, 특정 톰캣 인스턴스가 원하는 JDK를 바라보게 하려면 setenv.sh (리눅스/유닉스)나 setenv.bat (윈도우)을 활용하면 된다.

 

setenv.sh 혹은 setenv.bat 파일은 기본적으로 생성되어있지 않아서 톰캣 bin 디렉토리에 직접 생성하고 내용을 입력해야한다. 

1. setenv.sh 위치

  • 톰캣 설치 경로 기준:
1
2
$CATALINA_HOME/bin/setenv.sh
 
cs

 

  • 권한 부여:
 
chmod +x $CATALINA_HOME/bin/setenv.sh
cs

 

  *윈도우는 %CATALINA_HOME%\bin\setenv.bat

 

2. 리눅스 예시 설정(setenv.sh)

예를 들어 /usr/lib/jvm/java-17 경로의 JDK를 사용하게 하려면:

1
2
3
4
5
6
7
8
#!/bin/sh
 
# 원하는 JDK 경로 지정
export JAVA_HOME=/usr/lib/jvm/java-17
export PATH=$JAVA_HOME/bin:$PATH
 
# (선택) 톰캣 메모리 옵션 등도 여기서 설정 가능
export CATALINA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC"
cs

 

이렇게 설정하면 catalina.sh 실행 시 자동으로 setenv.sh 내용을 읽어서 해당 JAVA_HOME을 반영한다.

반응형

 

catalina.sh 파일을 vi나 cat으로 열어보면 아래와 같이 setenv.sh 파일을 읽는 내용이 있다.

1
2
3
4
5
6
7
8
9
CLASSBATH=
 
if [ -"$CATALINA_BASE/bin/setenv.sh" }; then
    . "$CATALINA_BASE/bin/setenv.sh"
elif [ -"$CATALINA_HOME/bin/setenv.sh" ]; then
    . "$CATALINA_HOME/bin/setenv.sh"
fi
 
 
cs

 

 

3. 윈도우 예시 설정(setenv.bat)

톰캣 bin 폴더 안에 setenv.bat를 생성:

1
2
3
4
5
6
7
8
9
@echo off
 
rem 원하는 JDK 경로
set "JAVA_HOME=C:\Program Files\Java\jdk-17"
set "PATH=%JAVA_HOME%\bin;%PATH%"
 
rem 톰캣 옵션
set "CATALINA_OPTS=-Xms512m -Xmx1024m -XX:+UseG1GC"
 
cs

 

 

4. 확인 방법

톰캣 시작 후 로그(catalina.out 또는 콘솔 출력)에 JDK 버전이 찍히는지 확인하거나:

1
2
ps -ef | grep java
 
cs

 

위 명령어로 톰캣 프로세스에서 자바 버전을 확인하면 된다.

반응형

'Web Development > OS&WEB&WAS' 카테고리의 다른 글

[WAS]AES 암호화 사용중에 Cipher not initialized  (0) 2017.12.11
[CentOS 7] Firewall 포트  (0) 2017.08.28
[CentOS 7] selinux 해제  (0) 2017.08.28