如何为多个Tomcat实例设置JAVA_HOME?

Cha*_*Pye 36 java tomcat

我有2个Java Web项目.一个运行在JDK 1.5上,另一个运行在JDK 1.6上.我想在同一台计算机上运行它们,但JAVA_HOME环境变量只能有一个值.我想为每个Tomcat服务器设置JAVA_HOME.

小智 40

将setenv.sh放在bin目录中

JAVA_HOME=/usr/java/jdk1.6.0_43/
JRE_HOME=/usr/java/jdk1.6.0_43/jre
Run Code Online (Sandbox Code Playgroud)

或者你正在运行的其他版本.

  • 无需添加`JAVA_HOME`和`JRE_HOME`._如果指定了JRE_HOME和JAVA_HOME,则使用JRE_HOME._ http://tomcat.apache.org/tomcat-7.0-doc/RUNNING.txt (2认同)

bog*_*ron 20

您可以做的一件事是修改catalina.sh(基于Unix)或catalina.bat(基于Windows).

在每个脚本中,您可以设置某些变量,只有在shell下创建的进程才会继承.因此,对于catalina.sh,请使用以下行:

export JAVA_HOME="intented java home"
Run Code Online (Sandbox Code Playgroud)

并为Windows使用

set JAVA_HOME="intented java home"
Run Code Online (Sandbox Code Playgroud)

  • Documnetation说它应该在**setenv**中完成,而不是**catalina**http://tomcat.apache.org/tomcat-7.0-doc/RUNNING.txt (6认同)

STB*_*and 13

如果您是Windows用户,请将以下内容放在必须在Tomcat bin目录中创建的setenv.bat文件中.

set JAVA_HOME=C:\Program Files\Java\jdk1.6.x
Run Code Online (Sandbox Code Playgroud)

如果您是Linux用户,请将以下内容放在必须在Tomcat bin目录中创建的setenv.sh文件中.

JAVA_HOME=/usr/java/jdk1.6.x
Run Code Online (Sandbox Code Playgroud)


小智 7

另请注意,之后不应有任何空格=:

set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_27
Run Code Online (Sandbox Code Playgroud)