OpenJDK 6을 OpenJDK 7로 바꾸는 방법?


33

놀랍게도 (OpenJDK 7이 약 4 개월 전에 일반 가용성으로 릴리스되었으므로) Ubuntu 11.10은 여전히 ​​기본적으로 7 대신 OpenJDK 6을 사용합니다. 이 문제를 가장 잘 해결하려면 어떻게해야합니까? OpenJDK 6을 완전히 제거하고 OpenJDK 7을 default-jdk 및 default-jre로 설정하고 싶습니다.

나는 공식 오라클 타르볼을 원하지 않고 표준 우분투 방식 인 deb repos를 원합니다.


누군가는 데비안 패키지로 빌드하고 Launchpad의 PPA에 넣어야합니다. 아무도 그렇게하지 않았다면, .deb를 만들거나 tar를 설치할 수 있습니다.
Martin Ueding

여전히 12.04의 경우
Thorbjørn Ravn Andersen

2011 년 - 이제 년도 2012 -이 해답이 될 것으로 간주 된 하나 (정말 해결되었습니다 lol? 그렇지 않으면 i gonna write a nice wiki on this내 질문 / 대답.

시스템을 LTS로 업그레이드하는 것이 좋습니다.
Ketan Patel

답변:


28

문제는 default-jre패키지가 OpenJDK 6에 의존하고 대부분의 다른 패키지가 종속성을 정의 default-jre | openjdk-6-jre | sun-java6-jre한다는 것입니다. 따라서 OpenJDK 7이 공식적으로 지원되고 기본 버전으로 사용될 때까지 또는 모든 Java 종속 패키지가 종속성을 업데이트 할 때까지 를 사용하여 OpenJDK 6을 유지하고 OpenJDK 7을 기본값으로 설정해야합니다 update-java-alternatives. 64 비트 시스템의 예 :

$ update-java-alternatives -l
java-1.6.0-openjdk 1061 /usr/lib/jvm/java-1.6.0-openjdk
java-1.7.0-openjdk-amd64 1051 /usr/lib/jvm/java-1.7.0-openjdk-amd64
$ sudo update-java-alternatives -s java-1.7.0-openjdk-amd64

32 비트 시스템에서 디렉토리 이름이 다르면 -l스위치를 사용하여 올바른 이름을 찾을 수 있습니다 . 두 번째 명령은 많은 오류를 뱉을 수 있습니다. --jre스위치 를 사용 하거나 오류를 무시하십시오 – 스크립트는 가능한 것을 변경하고 나머지는 무시합니다.

이론적 default-jre으로 OpenJDK 7에 의존 하도록 패키지를 편집 할 수 있지만 이것이 좋은 것보다 더 많은 해를 입힐 수 있다는 경고가 있습니다.


2
이 작업을 정확하게 수행하려면 각 openjdk-6 또는 icedtea-6 패키지에 해당하는 openjdk-7 또는 icetea-7 패키지가 있어야합니다. 그렇지 않으면 update-java-alternatives가 전환에 실패합니다.
Blair Zajac

2
icedtea-7-plugin ( $ sudo apt-get install icedtea-7-plugin)을 설치 한 후 Ubuntu 12.04에서 잘 작동했습니다. 감사.
David

10

이를 위해서는 시스템에 두 버전의 jdk가 모두 설치되어 있어야합니다. apt-get을 사용하여 둘 다 다운로드 할 수 있습니다.

그 시도 후

$ sudo update-alternatives --config java

사용하려는 jdk를 선택하십시오.

일부 응용 프로그램에서는 Openjdk가 바람직하지 않은 경우가 있습니다.

oracle-java 또는 sun-java도 시도해야합니다.

아래 링크는이 목적에 매우 유용합니다.

http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html


3

OpenJDK 7은 11.10의 일반적인 우분투 저장소에 있습니다 .openjdk-7-jre 및 openjdk-7-jdk를 찾아 apt-get / synaptic / software 센터를 사용하여 설치하면 openjdk-6이 아닌 경우 openjdk-6을 대체해야합니다 먼저 다음을 사용하여 openjdk-6- * 패키지를 제거 할 수 있습니다 apt-get purge openjdk-6-*


1
openjdk-7- * 패키지는 openjdk-6-와 나란히 설치되는 것으로 보입니다 . 그리고 openjdk-6-을 제거하려고하면 종속 패키지로 제거 할 패키지가 많이 있습니다 (이러한 응용 프로그램 중 일부는 Java 7에서 완벽하게 작동한다는 것을 알고 있습니다).
Ivan

분명히 default-jre여전히 Java 6을 가리 킵니다.
Thorbjørn Ravn Andersen

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.