Ubuntu 16.04에 최신 Oracle JDK(8 또는 9)를 설치할 때 몇 가지 토론을 발견했습니다.
https://askubuntu.com/questions/521145/how-to-install-oracle-java-on-ubuntu-14-04
https://askubuntu.com/questions/159575/how-do-i-make-java-default-to-a-manually-installed-jre-jdk
나는 그들의 방법을 다음과 같이 요약한다.
일부 는 , 를 표현
update-alternatives
하는데 사용 합니다java
.javac
javaws
예), 일부는 더 많은 명령에 사용하지만( 예,예,예,예). 어느 것이 적용할 명령의 전체 목록을 제공하는지 잘 모르겠습니다update-alternatives
.일부는
update-java-alternatives
(예,예, ), 하지만일부는 수동 설치로는 작동하지 않는다고 말합니다..일부는
update-alternatives
및update-java-alternatives
(예)어떤 사람들은 여러 환경 변수를 변경하고 처음 두 가지 방법이 불필요하게 복잡하다고 생각합니다(예, )
update-alternatives
일부는 동시에 여러 환경 변수를 사용 하고 변경합니다.예)
어떤 방법이 권장되는지 알고 싶습니다.
감사해요.
답변1
Java 대안을 권장한다고 말할 때 update-java-alternatives
설치된 모든 Java 공급자가 필요한 인프라를 제공한다고 가정합니다. 이는 Debian 및 그 파생 제품에서 제공되는 OpenJDK 패키지의 경우이지만 반드시 다른 JDK 패키지의 경우는 아니며 수동으로 설치된 JDK의 경우에는 해당되지 않습니다. 생성된 Oracle JDK 패키지 사용java-package
하다필요한 인프라를 제공합니다. 모든 Java 명령을 수동으로 설정하는 것에 대한 대안은 사람들의 시간 낭비라고 생각합니다. Oracle JRE 또는 JDK를 설치하려면 java-package
.
요점 update-java-alternatives
은 기본 JRE/JDK 도구의 설정이 일관되게 유지되도록 하는 것입니다. 이론적으로는 update-alternatives
" --slave
관계"를 사용하여 이를 수행할 수 있습니다. 그러나 이는 일반적으로 OpenJDK 패키지에 적용되지 않습니다. 사용 가능한 도구의 하위 세트를 설치할 수 있고 update-alternatives
문제가 해결되지 않기 때문입니다. 따라서 생성되어 update-java-alternatives
모든 도구를 처리할 수 있습니다.예설치되었으며 다른 것에 대한 불만은 없습니다. 제대로 작동 하려면 update-java-alternatives
JRE/JDK 패키지가 /usr/lib/jvm
(예를 들어 .java-1.8.0-openjdk-amd64.jinfo
). ( update-alternatives
분명히 RPM 기반 배포판은 이 문제를 해결하지만 아직 자세한 내용은 살펴보지 않았습니다.)
JAVA_HOME
Java 자체에는 설치된 여러 JRE/JDK, 즉 환경 변수 중에서 선택하는 고유한 방법이 있습니다 . 실제로 보완적 update-java-alternatives
입니다 JAVA_HOME
. 요구 사항에 따라 서로 다른 JRE/JDK를 가리키도록 설정하는 것이 가능해야 합니다. update-java-alternatives
허용하다시스템 관리자시스템에서 어떤 JRE/JDK가 기본값인지 지정합니다(사실 패키지 관리자가 어떤 것이 기본값인지 지정할 수 있다고 생각할 수도 있습니다. 이는 모두 관리자와 사용자에게 투명하게 작동해야 합니다). JAVA_HOME
모든 사용자 또는 시작 스크립트가 특정 환경에서 사용해야 하는 JRE/JDK를 지정할 수 있도록 허용합니다. Unix 스타일 시스템에서는 (Windows와 달리) 선택 항목 등을 동적으로 사용하도록 설정할 수 PATH
없으므로 설정을 추적하기 위해 기본값 등을 원하는 경우(처음에 추가됨) , 변경할 때 재설정하는 것을 기억해야 합니다 .PATH
JAVA_HOME
java
javac
PATH
JAVA_HOME
java
JAVA_HOME
$JAVA_HOME/bin
PATH
이 모든 것의 요점은 내 대답과 비슷합니다"update-alternatives"를 사용하는 대신 환경 변수를 설정합니까?: 시스템 관리자는 update-java-alternatives
시스템에 정의된 기본 JRE/JDK를 사용해야 하며(또는 패키지가 자체적으로 선택하도록 허용), 사용자는 JAVA_HOME
특정 환경에 정의된 JRE/JDK를 사용할 수 있습니다.