我对 Linux 相当陌生,一直面临这个问题,想知道是否有什么办法可以帮助解决它。因此,当我尝试关闭 Tomcat 时,这就是我收到的错误。正如您所看到的,“bin”在路径中重复出现。我可以看到它选择了错误的路径,但在检查 $JAVA_HOME 和 $PATH 时不确定需要修改哪个变量,它们似乎没问题。
bash-4.1$ ./shutdown.sh
Using CATALINA_BASE: /apps/opt/apache-tomcat-7.0.77
Using CATALINA_HOME: /apps/opt/apache-tomcat-7.0.77
Using CATALINA_TMPDIR: /apps/opt/apache-tomcat-7.0.77/temp
Using JRE_HOME: /usr/java/jre1.8.0_121/bin
Using CLASSPATH: /apps/opt/apache-tomcat-7.0.77/bin/bootstrap.jar:/apps/opt/apache-tomcat-7.0.77/bin/tomcat-juli.jar
/apps/opt/apache-tomcat-7.0.77/bin/catalina.sh: line 467: /usr/java/jre1.8.0_121/bin/bin/java: No such file or directory
另外,检查像 467 ,这就是它所说的,我不知道该怎么做。它是这样的:
466
467 eval "\"$_RUNJAVA\"" $LOGGING_MANAGER $JAVA_OPTS \
468 -Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\"" -classpath "\"$CLASSPATH\"" \
469 -Dcatalina.base="\"$CATALINA_BASE\"" \
这也是 PATH 和 JAVA_HOME 的样子。
bash-4.1$ echo $JAVA_HOME
:/usr/java/jre1.8.0_121/bin/java
bash-4.1$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/vzwhome/mehtta4/bin:/apps/opt/databuck/opt/bin:/apps/opt/databuck/opt/node/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/vzwhome/mehtta4/bin:/usr/java/jre1.8.0_121/bin/java
答案1
看起来好像您的JRE_HOME
变量包含路径/usr/java/jre1.8.0_121/bin
,并且该路径catalina.sh
用作可执行文件$JRE_HOME/bin/java
的完整路径java
。
$JRE_HOME/bin/java
将扩展到/usr/java/jre1.8.0_121/bin/bin/java
无法找到的位置。
很可能应该JRE_HOME
设置为/usr/java/jre1.8.0_121
而不是 to /usr/java/jre1.8.0_121/bin
。
有一个StackOverflow 上的评论回答证实了这一点,接着说如果未设置,则将使用JRE_HOME
的值。JAVA_HOME