为tomcat7指定JDK


41

我已经安装tomcat7(使用apt-get install),并且每当我要启动tomcat7时都说:

* no JDK found - please set JAVA_HOME

我已经JAVA_HOME在我的发行版中bash.bashrc也设置了~/.bashrc发行版,当我发行时,echo $JAVA_HOME我清楚地看到该变量指向我的jdk的根文件夹。有人可以帮我吗?

谢谢


2
这帮助我找到了可以告诉我tomcat7使用什么JDK的地方。
icedwater 2013年

同样在这里。现在,我知道Tomcat在哪里寻找JAVA_HOME。
slayedbylucifer

Answers:


78

您可以尝试以下方法:

只需按键盘上的Ctrl+ Alt+ T打开终端。打开时,运行以下命令。

gksudo gedit /etc/default/tomcat7

打开文件后,取消注释设置JAVA_HOME变量的行。

在此处输入图片说明

保存并重新启动tomcat7服务器。


请注意,升级到JDK 7会破坏该答案。使用不带版本号的符号链接将允许升级而不会使环境变量无效。
戴夫·贾维斯

1
也适用于tomcat8,只需将tomcat7字符串替换为tomcat8
nachtigall

9

Tomcat实际上不会使用您的JAVA_HOME环境变量,而是在一些预定义的位置以及启动脚本中设置的JAVA_HOME变量中查找,其他答案指出。如果您不喜欢混淆tomcat启动脚本,则可以为首选的Java安装创建符号链接,该链接将由tomcat拾取。

例如:

ln -s /usr/lib/jvm/java-8-oracle /usr/lib/jvm/default-java

2
这与包裹有冲突default-jre-headless
Tino

5

打开终端

echo $JAVA_HOME

复制结果。然后

sudo -H gedit /etc/default/tomcat7

替换#JAVA_HOME=/usr/lib/jvm/openjdk-6-jdk为您从中复制的输出$JAVA_HOME


2

只需在/ etc / default / tomcat7中的以下行添加定义JAVA_HOME变量的行

JAVA_HOME=/usr/lib/jvm/java-7-oracle

然后运行命令

sudo service tomcat7 restart

0

添加到Mitch的答案(上面接受的答案)中,检查您的/usr/lib/jvm/目录。通常,java本身会安装在那里。

您可能已安装了oracle java,或者可能已安装了最新版本的java。只需在检出目录/usr/lib/jvm/并添加您的Java所在的目录即可。

对我来说是:

/usr/lib/jvm/java-8-oracle

因此,更换

#JAVA_HOME=/some/directory

#JAVA_HOME=/usr/lib/jvm/java-8-oracle

为我做了工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.