내 Linux 컴퓨터에 Java 버전이 설치되어 있습니다. 내가 이것을 시도하면 :
root@test$: javac -version
결과는 다음과 같습니다.
javac jdk1.7.0_80.
이제 내 문제는 (1.7.0_80) Java 폴더가 어디에 있는지 모른다는 것입니다. '라는 파일이 있습니다.자바-7-오라클usr/lib/jvm에 있습니다. 설치된 Java 버전의 폴더인 것 같습니다.
이제 Java 폴더가 있는데 어떤 버전의 Java인지 알고 싶습니다.
어떻게? ?
답변1
Java 바이너리가 연결된 위치를 확인하면 이 모든 것을 추적할 수 있다고 생각합니다.
#which javac
/usr/bin/javac
#ls -ln /usr/bin/java
lrwxrwxrwx. 1 0 0 22 Nov 27 04:54 /usr/bin/java -> /etc/alternatives/java
#ls -ln /usr/bin/javac
lrwxrwxrwx. 1 0 0 23 Nov 27 04:54 /usr/bin/javac -> /etc/alternatives/javac
# ls -ln /usr/bin/javadoc
lrwxrwxrwx. 1 0 0 25 Nov 27 04:54 /usr/bin/javadoc -> /etc/alternatives/javadoc
마침내:
#ls -ld /etc/alternatives/java
lrwxrwxrwx. 1 root root 46 Nov 27 04:54 /etc/alternatives/java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
그래서 내 Java 설치는 다음과 같습니다.
/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
이와 같은 바이너리를 추적할 수 있다고 생각합니다.
답변2
이름만 입력하면 어떤 바이너리가 실행되는지 확인할 수 있고 which
, 이를 사용하면 readlink
프로세스를 한 줄로 압축할 수 있습니다.
readlink -e $(which java)
readlink -e
심볼릭 링크 또는 표준 파일 이름의 값을 인쇄하고 -e는 각 구성 요소를 반복적으로 따르도록 합니다.
tony@trinity:~$ readlink -e $(which java)
/usr/lib/jvm/java-6-openjdk-i386/jre/bin/java
참고: 테스트한 컴퓨터에는 javac가 설치되어 있지 않았기 때문에 방금 java를 사용했지만 위의 코드는 모든 바이너리에서 작동합니다.
또한 특정 폴더에서 Java 버전을 찾아달라고 요청하는 것 같습니까? 그러기 위해서는 이렇게만 하면 됩니다.
/full/path/java -version
이렇게 하면 Linux가 경로를 직접 검색하여 Java 바이너리를 찾는 것을 방지할 수 있습니다. 당신에 관한 한,
/usr/lib/jvm/java-7-oracle/javac -version
답변3
데비안과 그 파생물에서는 다음을 사용할 수 있습니다:
update-alternatives --config java
또는
update-alternatives --list java
--config 옵션을 사용하면 대안 목록에서 필수 Java를 설정할 수 있습니다.