Ubuntu에서 Oracle JDK의 대체 설치를 구성하는 방법은 무엇입니까?

Ubuntu에서 Oracle JDK의 대체 설치를 구성하는 방법은 무엇입니까?

Ubuntu 16.04에 최신 Oracle JDK(8 또는 9)를 설치할 때 몇 가지 토론을 발견했습니다.

나는 그들의 방법을 다음과 같이 요약한다.

  • 일부 는 , 를 표현 update-alternatives하는데 사용 합니다 java.javacjavaws), 일부는 더 많은 명령에 사용하지만( ,,,). 어느 것이 적용할 명령의 전체 목록을 제공하는지 잘 모르겠습니다 update-alternatives.

  • 일부는 update-java-alternatives(,, ), 하지만일부는 수동 설치로는 작동하지 않는다고 말합니다..

  • 일부는 update-alternativesupdate-java-alternatives()

  • 어떤 사람들은 여러 환경 변수를 변경하고 처음 두 가지 방법이 불필요하게 복잡하다고 생각합니다(, )

  • update-alternatives일부는 동시에 여러 환경 변수를 사용 하고 변경합니다.)

  • 일부는 ppa:webupd8team/java에서 설치됩니다(,,)

어떤 방법이 권장되는지 알고 싶습니다.

감사해요.

답변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-alternativesJRE/JDK 패키지가 /usr/lib/jvm(예를 들어 .java-1.8.0-openjdk-amd64.jinfo). ( update-alternatives분명히 RPM 기반 배포판은 이 문제를 해결하지만 아직 자세한 내용은 살펴보지 않았습니다.)

JAVA_HOMEJava 자체에는 설치된 여러 JRE/JDK, 즉 환경 변수 중에서 선택하는 고유한 방법이 있습니다 . 실제로 보완적 update-java-alternatives입니다 JAVA_HOME. 요구 사항에 따라 서로 다른 JRE/JDK를 가리키도록 설정하는 것이 가능해야 합니다. update-java-alternatives허용하다시스템 관리자시스템에서 어떤 JRE/JDK가 기본값인지 지정합니다(사실 패키지 관리자가 어떤 것이 기본값인지 지정할 수 있다고 생각할 수도 있습니다. 이는 모두 관리자와 사용자에게 투명하게 작동해야 합니다). JAVA_HOME모든 사용자 또는 시작 스크립트가 특정 환경에서 사용해야 하는 JRE/JDK를 지정할 수 있도록 허용합니다. Unix 스타일 시스템에서는 (Windows와 달리) 선택 항목 등을 동적으로 사용하도록 설정할 수 PATH없으므로 설정을 추적하기 위해 기본값 등을 원하는 경우(처음에 추가됨) , 변경할 때 재설정하는 것을 기억해야 합니다 .PATHJAVA_HOMEjavajavacPATHJAVA_HOMEjavaJAVA_HOME$JAVA_HOME/binPATH

이 모든 것의 요점은 내 대답과 비슷합니다"update-alternatives"를 사용하는 대신 환경 변수를 설정합니까?: 시스템 관리자는 update-java-alternatives시스템에 정의된 기본 JRE/JDK를 사용해야 하며(또는 패키지가 자체적으로 선택하도록 허용), 사용자는 JAVA_HOME특정 환경에 정의된 JRE/JDK를 사용할 수 있습니다.

관련 정보