我有2个Java Web项目。一个运行在JDK 1.5上,另一个运行在JDK 1.6上。我想在同一台计算机上运行它们,但JAVA_HOME环境变量只能有一个值。我想为每个Tomcat服务器设置JAVA_HOME。
答案 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):
这是手动内部文件: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。
设置变量的方法与其他人所描述的一样。