为什么在Ubuntu中tomcat7无法识别JAVA_HOME?

时间:2014-12-13 09:27:30

标签: java tomcat ubuntu

我在我的Ubuntu机器上安装了tomcat7。当我尝试重新启动服务器时,我收到设置JAVA_HOME的消息,但它设置为.bashrc

export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export CATALINA_HOME=/usr/share/tomcat7

错误:

omkars@<ubuntu_14.04>:~$ sudo service tomcat7 restart
[sudo] password for omkars: 
 * no JDK or JRE found - please set JAVA_HOME
omkars@<ubuntu_14.04>:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle

可能缺少什么? 感谢。

7 个答案:

答案 0 :(得分:28)

现在,它的工作!

我所做的改变是:

  • 按照问题中的说明更改了.bashrc
  • /etc/init.d/tomcat7更改为指向此处缺少的oracle Java8!

    JDK_DIRS="/usr/lib/jvm/default-java ${OPENJDKS} /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun /usr/lib/jvm/java-7-oracle **/usr/lib/jvm/java-8-oracle**"
    

然后,

root@omkars-Dell-System-Inspiron-N4110:~# sudo service tomcat7 restart 
 * Starting Tomcat servlet engine tomcat7                                [ OK ] 

从此页面得到提示:
https://mifosforge.jira.com/wiki/display/MIFOSX/Install+Tomcat+7+on+Ubuntu+11.10+for+Mifos+X

由于

答案 1 :(得分:8)

似乎处理此问题的首选方法是取消注释/etc/default/tomcat7中的JAVA_HOME条目并相应地调整路径。如果您将webupd8存储库与oracle-java8-installer一起使用,则为JAVA_HOME=/usr/lib/jvm/java-8-oracle

答案 2 :(得分:3)

需要为运行tomcat服务的用户设置,而不是为用户设置。

根据机器的配置方式,在/etc/profile/etc/profile.d/中的某个位置设置系统范围的配置文件。

答案 3 :(得分:3)

/etc/init.d/tomcat7处的启动脚本在搜索一些众所周知的安装位置之前会找到文件/etc/default/rcS

将行JAVA_HOME=/usr/lib/jvm/java-8-oracle添加到/etc/default/rcS会更正no JDK or JRE found启动问题,而无需直接修改/etc/init.d/tomcat7脚本。

答案 4 :(得分:2)

您可以在setenv.sh脚本中设置环境变量。根据{{​​3}}文件:

  

除了CATALINA_HOME和CATALINA_BASE之外,所有环境变量都可以   在“setenv”脚本中指定。脚本放入   CATALINA_BASE / bin或CATALINA_HOME / bin目录并命名   setenv.bat(在Windows上)或setenv.sh(在* nix上)。

所以只需将以下行添加到setenv.sh

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

这样您就可以设置变量本地

答案 5 :(得分:1)

我有同样的问题,但我通过改变来解决它 /etc/init.d/tomcat中的JDK_DIR变量如下:

JDK_DIRS="/usr/lib/jvm/default-java ${OPENJDKS} /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun /usr/lib/jvm/java-7-oracle /usr/lib/jvm/java-8-oracle"

答案 6 :(得分:0)