Tomcat6找不到java环境变量

Tomcat6找不到java环境变量

这是一个愚蠢的菜鸟问题。我安装了 Tomcat6 和 java-6-oracle。我将 /env/environment 设置为包含 JAVA_HOME 和 JRE_HOME(并且两者都指向正确的目录)。但是当我尝试启动 tomcat6 时,它显示:

no JDK found - please set JAVA_HOME

以下是我的 /etc/environment 的样子:

JAVA_HOME="/usr/lib/jvm/java-6-oracle"
JRE_HOME="/usr/lib/jvm/java-6-oracle/jre"
FEDORA_HOME="/var/lib/fedora"
CATALINA_HOME="/var/lib/tomcat6"
JAVA_OPTS="-Xms1024m -Xmx1024m -XX:MaxPermSize=128m -Djavax.net.ssl.trustStore=/usr/local/fedora/server/truststore -Djavax.net.ssl.trustStorePassword=tomcat"
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java-6-oracle:/usr/lib/jvm/java-6-oracle/bin:/usr/lib/jvm/java-6-oracle/jre:/var/lib/fedora/server/bin:/var/lib/fedora/client/bin"

我哪里做错了?

答案1

将这些行添加到$CATALINA_HOME/bin/setenv.sh(或 catalina.sh,但其中包含 setenv.sh):

export JAVA_HOME="/usr/lib/jvm/java-6-oracle"
export JAVA_OPTS="-Xms1024m -Xmx1024m -XX:MaxPermSize=128m Djavax.net.ssl.trustStore=/usr/local/fedora/server/truststore Djavax.net.ssl.trustStorePassword=tomcat"

出口使变量可供子进程使用。

答案2

主要就是tomcat中的classpath问题,解决方法有很多种,其中一种方法如下。

1) 找到已安装的 Java。它位于/usr/lib/jvm/

2)安装tomcat后打开其配置

sudo vi /etc/default/tomcat7

3)搜索#JAVA_HOME 取消注释并设置正确的路径示例JAVA_HOME=/usr/lib/jvm/java-7-oracle

4)保存文件并重启tomcat

答案3

默认情况下,Tomcat 优先使用 OpenJDK JVM,然后尝试 Sun JVM,最后尝试其他 JVM。您可以通过在 /etc/default/tomcat6 中设置 JAVA_HOME 来强制 Tomcat 使用特定的 JVM

答案4

看来在启动tomcat6的时候,/etc/environment是读不到的。

在您的 tomcat6 启动脚本中,尝试添加以下内容:

[ -r /etc/environment ] && . /etc/environment

相关内容