パス変数内のフォルダ名が重複しています

パス変数内のフォルダ名が重複しています

私は 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/javajava

$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使用されることが示されています。

関連情報