tomcat startup.sh 找不到 JAVA_HOME

标签 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。我该怎么办?

最佳答案

我遇到了同样的问题,通过将 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/

相关文章:

java - 如何最好地组织我的项目以获得最佳的 nginx 使用

java - ServletContextAttributeListener 的用例

tomcat - POST 参数内容是否有最大尺寸?

java - tomcat 7.0 和 tomcat 8.0 之间有什么变化

java - 如何在 spring-boot 应用程序中为 Apache Tomcat 中的 AccessLogValve 设置属性 requestAttributesEnabled?

ruby-on-rails-3 - 如果作为 war 捆绑,Rails 3 将其公共(public)文件保存在哪里?

java - 在 servlet 调用中未发现合适的驱动程序异常

tomcat - 从自定义 Tomcat 领域登录

maven - 无法在 Spring Boot 应用程序(Tomcat 服务器)中运行本地主机

java - 通过 Guice 将对象注入(inject) HttpSessionAttributeListener?