私は 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
/usr/java/jre1.8.0_121/bin
そこにはStackOverflowのコメントでこれを裏付ける回答JRE_HOME
、が設定されていない場合は、代わりに の値がJAVA_HOME
使用されることが示されています。