Ich bin ziemlich neu bei Linux und hatte dieses Problem und fragte mich, ob es etwas lösen könnte. Wenn ich also versuche, Tomcat herunterzufahren, erhalte ich diesen Fehler. Wie Sie sehen, wird „bin“ im Pfad wiederholt. Ich sehe, dass der falsche Pfad ausgewählt wird, bin mir aber nicht sicher, welche Variable geändert werden muss, da ich $JAVA_HOME und $PATH überprüft habe und diese in Ordnung zu sein scheinen.
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
Außerdem lautet das Häkchen 467 und das steht da, aber ich bin mir nicht sicher, was ich machen soll. So sieht es aus:
466
467 eval "\"$_RUNJAVA\"" $LOGGING_MANAGER $JAVA_OPTS \
468 -Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\"" -classpath "\"$CLASSPATH\"" \
469 -Dcatalina.base="\"$CATALINA_BASE\"" \
So sehen PATH und JAVA_HOME aus.
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
Antwort1
Es sieht so aus, als ob Ihre JRE_HOME
Variable den Pfad enthält /usr/java/jre1.8.0_121/bin
und dieser als vollständiger Pfad zur ausführbaren Datei catalina.sh
verwendet wird .$JRE_HOME/bin/java
java
$JRE_HOME/bin/java
wird erweitert, bis /usr/java/jre1.8.0_121/bin/bin/java
das nicht gefunden werden kann.
Wahrscheinlich sollte „ auf “ und nicht „auf“ JRE_HOME
gesetzt werden ./usr/java/jre1.8.0_121
/usr/java/jre1.8.0_121/bin
Da ist einantworten Sie mit einem Kommentar bei StackOverflow, der dies bestätigt, und besagt weiter, dass, wenn JRE_HOME
nicht festgelegt ist, stattdessen der Wert von JAVA_HOME
verwendet wird.