Имя папки в переменной пути повторяется

Имя папки в переменной пути повторяется

Я довольно новичок в 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

Связанный контент