Tomcat无法识别JAVA_HOME

Modified on: Thu, 14 Jun 2018 05:50:23 +0800

我安装了Ubuntu 14.04 Server,解压缩了JDK1.8u5和Tomcat7,并将以下内容添加到.profile(我也尝试将其添加到.bashrc中,类似[非]结果):

export JAVA_HOME=/opt/java/jdk1.8.0_05
export PATH=$PATH:$JAVA_HOME/bin

当我运行echo $JAVA_HOME时,我得到/opt/java/jdk1.8.0_05的预期结果。我也可以运行java -version并从Java获得正确的响应。到目前为止一切顺利。

所以现在我尝试启动Tomcat(尝试过catalina.sh),我得到以下内容:

user@ubuntu:~$ sudo /opt/tomcat7/apache-tomcat-7.0.53/bin/startup.sh
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program

但是......我刚试过echo $JAVA_HOME而且它有效吗?

作者:Braiam,isapir

最佳答案

catalina.sh中有帮助文字。我会在这里引用它:

#   Do not set the variables in this script. Instead put them into a script
#   setenv.sh in CATALINA_BASE/bin to keep your customizations separate.

#
#   JAVA_HOME       Must point at your Java Development Kit installation.
#                   Required to run the with the "debug" argument.

# Ensure that any user defined CLASSPATH variables are not used on startup,
# but allow them to be specified in setenv.sh, in rare case when it is needed.
CLASSPATH=

if [ -r "$CATALINA_BASE/bin/setenv.sh" ]; then
  . "$CATALINA_BASE/bin/setenv.sh"
elif [ -r "$CATALINA_HOME/bin/setenv.sh" ]; then
  . "$CATALINA_HOME/bin/setenv.sh"
fi

使用tomcat启动catalina.sh时,会搜索文件setenv.shsourcing 。它正在CATALINA_HOMECATALINA_BASE中搜索。

因此,为JAVA_HOME设置tomcat的更好方法是:

  1. setenv.sh文件夹中创建一个名为CATALINA_BASE/bin的脚本(如果它尚不存在)。
  2. 将此行添加到setenv.sh

    export JAVA_HOME=/opt/java/jdk1.8.0_05
    
  3. 让它可执行。

  4. 醇>

    为什么要使用此解决方案:

    在脚本中设置环境变量更安全。始终尝试尽可能在本地设置变量。如果您确实需要/etc/environment

作者:muru,c0rp

相关问答

添加新评论