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

时间:2009-11-09 03:12:59

标签: java tomcat

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

11 个答案:

答案 0 :(得分:40)

使用

将setenv.sh放在bin目录中
JAVA_HOME=/usr/java/jdk1.6.0_43/
JRE_HOME=/usr/java/jdk1.6.0_43/jre

或您正在运行的其他版本。

答案 1 :(得分:20)

你可以做的一件事就是修改catalina.sh(基于Unix)或者catalina.bat(基于windows)。

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

export JAVA_HOME="intented java home"

对于Windows使用

set JAVA_HOME="intented java home"

答案 2 :(得分:13)

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

set JAVA_HOME=C:\Program Files\Java\jdk1.6.x

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

JAVA_HOME=/usr/java/jdk1.6.x

答案 3 :(得分:7)

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

set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_27

答案 4 :(得分:4)

您可以使用以下命令在bin目录中添加setenv.sh:

  

export JAVA_HOME = $(readlink -f / usr / bin / java | sed" s:bin / java ::")

,当您更新软件包时,它会动态更改。

答案 5 :(得分:3)

在UNIX中我遇到了这个问题,我手动编辑了catalina.sh并输入了

export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.24
echo "Using JAVA_HOME:       $JAVA_HOME"

作为前2行。我尝试在JAVA_HOME中设置/etc/profile,但没有帮助。

这终于奏效了。

答案 6 :(得分:3)

我认为这是一种最佳实践(您可能在同一台计算机上有许多Tomcat实例,您希望每个Tomcat实例使用其他Java Runtime Environment):

enter image description here

enter image description here

这是手动内部文件:catalina.sh

#   JRE_HOME        Must point at your Java Runtime installation.
#                   Defaults to JAVA_HOME if empty. If JRE_HOME and JAVA_HOME
#                   are both set, JRE_HOME is used.

答案 7 :(得分:2)

基于Linux的Tomcat6应该有 /etc/tomcat6/tomcat6.conf

# System-wide configuration file for tomcat6 services
# This will be sourced by tomcat6 and any secondary service
# Values will be overridden by service-specific configuration
# files in /etc/sysconfig
#
# Use this one to change default values for all services
# Change the service specific ones to affect only one service
# (see, for instance, /etc/sysconfig/tomcat6)
#

# Where your java installation lives
#JAVA_HOME="/usr/lib/jvm/java-1.5.0"

# Where your tomcat installation lives
CATALINA_BASE="/usr/share/tomcat6"
...

答案 8 :(得分:2)

我遇到了同样的问题我的操作系统是Windows 8而我使用的是Tomcat 8, 我刚编辑了bin文件夹中的 setclasspath.bat 文件并设置了JAVA_HOME和JRE_HOME 像这样...

  

  @echo关闭   ...
  ...
  set" JRE_HOME =%ProgramFiles%\ Java \ jre8"
  set" JAVA_HOME =%ProgramFiles%\ Java \ jdk1.7.0_03"
  ...
  ...
  

现在它对我来说很好......

答案 9 :(得分:2)

对于Debian发行版,我们可以通过默认值

覆盖设置
/etc/default/tomcat6

JAVA_HOME设置为指向所需的java版本。

JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

答案 10 :(得分:0)

只是一张纸条......

如果将该代码添加到setclasspath.bat或setclasspath.sh,它实际上将由您可以运行的所有Tomcat脚本使用,而不仅仅是Catalina。

设置变量的方法与其他人所描述的一样。