主题
Tomcat 指定 JDK 运行(多版本共存)
一、背景
机器上同时存在多个 JDK(如 JDK 8、JDK 11)。全局默认是 JDK 8,希望 Tomcat 9 单独使用 JDK 11,且不影响系统及其他应用的 JDK 8。
示例路径:JDK 11 为
/home/application/jdk-11.0.2,Tomcat 为/home/application/apache-tomcat-9.0.91。
二、操作步骤
2.1 修改 setclasspath.sh
文件路径:/home/application/apache-tomcat-9.0.91/bin/setclasspath.sh
在脚本开头(#!/bin/sh 之后)指定 JAVA_HOME:
bash
#!/bin/sh
JAVA_HOME=/home/application/jdk-11.0.2
# ... 其余内容保持不变2.2 修改 catalina.sh
文件路径:/home/application/apache-tomcat-9.0.91/bin/catalina.sh
同样在开头指定 JAVA_HOME:
bash
#!/bin/sh
JAVA_HOME=/home/application/jdk-11.0.2
# ... 其余内容保持不变三、启动并验证
bash
/home/application/apache-tomcat-9.0.91/bin/startup.sh启动日志中关注 Using JRE_HOME / Using JAVA_HOME,应指向 JDK 11 路径,例如:
bash
Using CATALINA_BASE: /home/application/apache-tomcat-9.0.91
Using CATALINA_HOME: /home/application/apache-tomcat-9.0.91
Using CATALINA_TMPDIR: /home/application/apache-tomcat-9.0.91/temp
Using JRE_HOME: /home/application/jdk-11.0.2
Using CLASSPATH: /home/application/apache-tomcat-9.0.91/bin/bootstrap.jar:/home/application/apache-tomcat-9.0.91/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.也可进程侧确认:
bash
ps -ef | grep tomcat
# 或查看进程环境 / 打开的 java 路径是否为 jdk-11.0.2NOTE
若启动仍显示旧的 JDK 8,请确认 JAVA_HOME 已写在两个脚本最前、路径无拼写错误,并重新 shutdown.sh 后再 startup.sh。也可优先在 setenv.sh(同 bin 目录,没有则新建)中只写 JAVA_HOME=...,避免直接改 catalina.sh。
