gpt4 book ai didi

java - 我的 tomcat 使用了错误的 JAVA_HOME 或 JRE_HOME

转载 作者:IT王子 更新时间:2023-10-29 00:35:45 27 4
gpt4 key购买 nike

我是 Tomcat 的新手。我的 ubuntu 10.10 上的 Tomcat 7 有问题。

当我这样启动Tomcat时

llchli@llchli-virtual-machine:/usr/local/apache-tomcat-7.0.47/bin$ ./catalina.sh  run
Using CATALINA_BASE: /usr/local/apache-tomcat-7.0.47
Using CATALINA_HOME: /usr/local/apache-tomcat-7.0.47
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-7.0.47/temp
Using JRE_HOME: /usr/local/jdk1.7.0_45
Using CLASSPATH: /usr/local/apache-tomcat-7.0.47/bin/bootstrap.jar:/usr/local/apache-tomcat-7.0.47/bin/tomcat-juli.jar

虽然不能以这种方式启动 Tomcat,但它会回显 Using JRE_Home/usr/local/jdk1.7.0_45,这是正确的 JAVA_HOMEJRE_HOME 在我的电脑上。

但是当我像这样用 sudo 启动 Tomcat 时

llchli@llchli-virtual-machine:/usr/local/apache-tomcat-7.0.47/bin$ sudo ./catalina.sh  start
[sudo] password for llchli:
Using CATALINA_BASE: /usr/local/apache-tomcat-7.0.47
Using CATALINA_HOME: /usr/local/apache-tomcat-7.0.47
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-7.0.47/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/apache-tomcat-7.0.47/bin/bootstrap.jar:/usr/local/apache-tomcat-7.0.47/bin/tomcat-juli.jar

它回显 Using JRE_HOME:/usr,这在我的电脑上不是正确的 JAVA_HOMEJRE_HOME。但它可以正确启动 Tomcat。

我的/etc/environment

llchli@llchli-virtual-machine:/usr/local/apache-tomcat-7.0.47/bin$ sudo cat /etc/environment 
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/jdk1.7.0_45/bin"
LANGUAGE="en"
JAVA_HOME="/usr/local/jdk1.7.0_45"
CLASSPATH="$CLASSPATH:$JAVA_HOME/lib"
CATALINA_HOME="/usr/local/apache-tomcat-7.0.47"

我对此有点困惑。当我像这样使用 daemon.sh 时,它会产生错误。

llchli@llchli-virtual-machine:/usr/local/apache-tomcat-7.0.47/bin$ sudo ./daemon.sh run
Cannot find any VM in Java Home /usr
Cannot find any VM in Java Home /usr
Cannot locate JVM library file
Service exit with a return value of 1

它回显 在 Java Home/usr 中找不到任何 VM。我很困惑。

任何帮助和建议将不胜感激。

提前致谢。

最佳答案

听起来“sudo”没有将您的 JAVA_HOME 和 JAVA_PATH 传递给子进程。

当您使用“sudo”运行命令时,环境变量会根据 sudoers 文件的内容进行设置。我对“sudoers”手册条目的阅读是,默认设置是不传递变量。但是根据“sudo”手册条目,有一个命令语法变体允许您使用“VAR=value”传递环境变量...

我建议您仔细阅读“sudo”和“sudoers”的手册条目,然后阅读系统的“/etc/sudoers”文件以了解其行为。


话虽如此,使用“sudo”从命令行启动服务并不是一个好主意,尤其是在谈论“生产”服务时。而且您通常最好使用发行版包装提供的服务包装器,而不是来自“上游”项目的非包装安装。

关于java - 我的 tomcat 使用了错误的 JAVA_HOME 或 JRE_HOME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20030190/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com