경로 변수에 폴더 이름이 중복되었습니다.

경로 변수에 폴더 이름이 중복되었습니다.

저는 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

관련 정보