当启动 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。我该怎么办?
最佳答案
我遇到了同样的问题,通过将 JAVA_HOME
变量定义放在文件 /etc/environment
中解决了这个问题。
最初我创建了 JAVA_HOME
环境变量调用:
$ export JAVA_HOME=<path_to_my_java_home>
然后我意识到 Tomcat startup.sh
脚本在使用 sudo
调用时无法访问 JAVA_HOME
变量的值,这是启动 Tomcat 服务器所必需的。
首先,我尝试使用 sudo
导出 JAVA_HOME
变量,但没有成功:
$ sudo export JAVA_HOME=<path_to_my_java_home>
sudo: export: command not found
然后我尝试将 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
然后在使用 sudo
调用 Tomcat startup.sh
脚本并访问 http://localhost:8080
之后,brownser 会带来 Tomcat 启动页面,表示服务器设置成功。
关于tomcat startup.sh 找不到 JAVA_HOME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2566933/