这是一个愚蠢的菜鸟问题。我安装了 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