指定tomcat使用的jdk版本

操作目标: 192.168.100.150 cloudfollowadmin 项目指定java 1.8

192.168.100.150 上有多个tomcat项目,起java版本使用了系统默认的1.6,现在要为cloudfollowadmin项目指定使用java1.8版本,以下是操作步骤

实现思路

  • 找到启动加载的配置文件
  • 在配置文件中指定javahome

以下是该项目的完整路径
/webserver/tomcat/cloudfollowadmin/bin/

在该路径下,tomcat启动时会加载执行catalina.sh文件,这里设置了一些环境变量,但是在脚本的中间部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
> vim catalina.sh

......

# Get standard Java environment variables
if $os400; then
# -r will Only work on the os400 if the files are:
# 1. owned by the user
# 2. owned by the PRIMARY group of the user
# this will not work if the user belongs in secondary groups
BASEDIR="$CATALINA_HOME"
. "$CATALINA_HOME"/bin/setclasspath.sh
else
if [ -r "$CATALINA_HOME"/bin/setclasspath.sh ]; then
BASEDIR="$CATALINA_HOME"
. "$CATALINA_HOME"/bin/setclasspath.sh
else
echo "Cannot find $CATALINA_HOME/bin/setclasspath.sh"
echo "This file is needed to run this program"
exit 1
fi
fi

......

在获取java环境变量的时候,实际是读取了该bin目录下,setclasspath.sh脚本的执行结果,所以有此可以推导出,只要在setclasspath.sh脚本中,把java的配置写死,那么tomcat启动时,就会去指定的路径下去找javahome了

1
2
3
4
5
6
7
> vim setclasspath.sh
#!/bin/sh

JAVA_HOME="/usr/local/src/jdk1.8.0_101/"
JRE_HOME="/usr/local/src/jdk1.8.0_101/jre"

......

在setclasspath.sh脚本的开头,设置java的环境变量,如果你本机的其他java应用需要继续使用tomcat老版本,那么在这个脚本中,千万不要在前面加上export关键字,这样会把这个变量的设置提升为全局变量,会影响到其他应用重启时获取到的javaHome路径