저는 몇 년 동안 손대지 않은 Java 프로그램을 업데이트하는 임무를 맡고 있는데 최신 버전의 Java OpenJDK 14.0.1.7-2를 사용하여 Centos 7에서 이를 빌드하는 데 문제가 있습니다. $ make all
Java 프로그램 컴파일을 시작하는 명령을 실행하면 /bin/sh: javac: command not found
오류 메시지가 나타납니다.
.bash_profile
내 홈 디렉토리의 파일을 편집 하고 다음을 추가했습니다.
export JAVA_HOME=/usr/lib/jvm/java-14-openjdk-14.0.1.7-2.rolling.el7.x86_64/bin/java
다음: $ source .bash_profile
변경 사항을 적용하고 유효성을 검사하면 echo $JAVA_HOME
예상한 결과가 나왔지만 여전히 운이 좋지 않습니다.
지금까지 Java OpenJDK 1.8을 설치하고 javac 저장소를 연결할 때만 프로그램을 성공적으로 빌드할 수 있었습니다.
실행 중 alternatives --display javac
마지막 줄에 다음이 표시됩니다.
Current `best' version is /usr/lib/jvm/java-1.7.0-openjdk 1.7.0.261-2.6.22.2.el7_8.x86_64/bin/javac.
내 시스템에 Java OpenJDK V1.7이 설치되어 있지 않기 때문에 이것이 이상합니다.
실행 중 alternatives --display java
마지막 줄에 다음이 표시됩니다.
Current `best' version is /usr/lib/jvm/java-14-openjdk-14.0.1.7-2.rolling.el7.x86_64/bin/java.
내가 어디로 잘못 가고 있는지에 대한 제안은 크게 감사하겠습니다.
답변1
몇 가지 사항은 JAVA_HOME 환경 변수에 실제 저장소에 대한 경로가 있다는 것을 알았습니다. 이를 다음과 같이 변경해 보십시오.
JAVA_HOME=/usr/lib/jvm/java-14-openjdk-14.0.1.7-2.rolling.el7.x86_64/
PATH 환경 변수를 확인하려면 다음 명령을 사용하십시오.
find /bin/ /sbin/ /usr/sbin /usr/lib /usr/bin/ /usr/local/bin /usr/local/sbin ${HOME}/ /opt/ -type f -name 'javac' -exec dirname "{}" \;
내보내기 PATH=${PATH}:whatever-result-you-get-from-that 또는 간단히 다음을 찾으면:
export PATH=${PATH}:$(find /bin/ /sbin/ /usr/sbin /usr/lib /usr/bin/ /usr/local/bin /usr/local/sbin ${HOME}/ /opt/ -type f -name 'javac' -exec dirname "{}" \;)
답변2
대안은 javac
현재 설치되어 있지 않다고 말하는 항목을 가리킵니다. 이는 가장 간단한 대답은 대안이 JDK를 가리키도록 업데이트하는 것임을 나타냅니다.예설치하다. 그러면 /usr/bin/javac
실제 실행 파일을 다시 가리키 도록 심볼릭 링크가 다시 지정되고 PATH
검색이 javac
다시 작동합니다. 실제 PATH
변경은 필요하지 않습니다.
대안 --config javac
이를 수행하는 대화형 방법입니다. 또는
대안 --auto javac