경로 병리학: Java가 더 이상 작동하지 않습니다.

경로 병리학: Java가 더 이상 작동하지 않습니다.

내 경로에 Java 서비스가 중단되는 몇 가지 문제가 있습니다. 구성 요소가 올바른 위치에 있는 것 같습니다.

$ which java
/usr/bin/java
$ which javac
/usr/bin/javac

그러나 버전 쿼리가 더 이상 작동하지 않습니다.

$ java --version
Unable to locate an executable at "/usr/bin/javac/bin/java" (-1)
$ javac --version
Unable to locate an executable at "/usr/bin/javac/bin/javac" (-1)

이것은 MacPorts와 Spack을 설치하느라 바쁜 하루를 보낸 후의 모습입니다.

이 문제를 어떻게 해결하나요?


시스템 메시지:

$ uname -a
Darwin ****.***.*** 16.6.0 Darwin Kernel Version 16.6.0: Fri Apr 14 16:21:16 PDT 2017; root:xnu-3789.60.24~6/RELEASE_X86_64 x86_64

경로 설정은 다음과 같습니다.

$ echo $PATH
/Users/*******/****/spack/:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/TeX/texbin

답변1

이것은 문제가 되지 않는 것 같습니다 PATH. java유틸리티를 호출하고 있는 것입니다. 문제는 프런트 엔드 java실행 파일이 Java 설치의 나머지 부분을 찾을 수 없다는 것입니다. JAVA_HOME환경변수 때문인거 같아요스택 오버플로에 대한 이 게시물확인하다. 출력을 확인하세요

env | grep '^JAVA'

설정된 경우 및 라는 하위 디렉터리가 포함된 디렉터리 JAVA_HOME로 설정되어야 합니다 . 실행 파일이 있어야 합니다 . 일반적으로 마지막 디렉토리 부분에는 하위 문자열이 포함됩니다 .binjre$JAVA_HOME/bin/javaJAVA_HOMEjdk

환경 변수가 설정된 위치를 확인하고 수정하세요 JAVA_HOME. 이는 /.bash_profile 또는 내가 모르는 일부 MacPorts 또는 sppack 파일 /etc/profile에 있을 수 있습니다(참조).~/.profileOS X에서 환경 변수를 설정하는 방법은 무엇입니까?).

관련 정보