tomcat startup.sh找不到JAVA_HOME

Pet*_*ean 5 tomcat

在启动Tomcat 6.0作为服务时,我对CentOs 5.4上的这种奇怪行为感到有些困惑

我在/etc/init.d/tomcat添加了一个脚本,它可以用用户'tomcat'启动/停止/重启Apache Tomcat 6.0,并将其注册为服务.该服务的问题是我得到了'既未定义JAVA_HOME也未定义JRE_HOME环境变量'.但是当输入'sudo -u tomcat echo $ JAVA_HOME'时,我得到'/usr/java/jdk1.5.0_22'这是正确的,因为我使用的是JDK.我该怎么办?

小智 11

我有同样的问题,并通过将JAVA_HOME变量定义放在文件上来解决它/etc/environment.

最初我创建了JAVA_HOME环境变量调用:

$ export JAVA_HOME=<path_to_my_java_home>
Run Code Online (Sandbox Code Playgroud)

然后我意识到Tomcat startup.sh脚本JAVA_HOME在调用变量时无法访问变量的值sudo,这是启动Tomcat服务器所必需的.

首先我尝试使用导出JAVA_HOME变量sudo,但它不起作用:

$ sudo export JAVA_HOME=<path_to_my_java_home>
sudo: export: command not found
Run Code Online (Sandbox Code Playgroud)

然后我尝试将JAVA_HOME变量定义添加到/etc/environment文件中.以下是我的/etc/enviroment文件现在的样子:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
JAVA_HOME=/usr/lib/jvm/java-7-oracle
Run Code Online (Sandbox Code Playgroud)

然后在调用Tomcat startup.sh脚本sudo并访问http://localhost:8080brownser后会带来Tomcat启动页面,该页面表明服务器已成功安装.


小智 3

您是否尝试过将 JAVA_HOME 环境变量强制放入启动脚本本身?每当我遇到这样的问题时,我发现这是一种很好的故障排除技术,可以通过在脚本本身中设置来尝试追踪丢失此信息的位置。