Bagaimana cara mengganti OpenJDK 6 dengan OpenJDK 7?


33

Anehnya (karena OpenJDK 7 dirilis untuk ketersediaan umum sekitar 4 bulan yang lalu) Ubuntu 11.10 masih menggunakan OpenJDK 6 bukan 7 secara default. Bagaimana cara terbaik memperbaikinya? Saya lebih suka untuk menghapus OpenJDK 6 sepenuhnya dan membiarkan OpenJDK 7 menjadi default-jdk dan default-jre.

Saya tidak ingin tarbal resmi Oracle, saya ingin repo deb - cara standar Ubuntu.


Seseorang harus membuatnya menjadi paket Debian dan memasukkannya ke dalam PPA di Launchpad. Jika belum ada yang melakukan itu, Anda dapat membuat .deb atau menginstal tar.
— Martin Ueding

Masih halnya dengan 12,04
— Thorbjørn Ravn Andersen

Tahun 2011 - Sekarang Tahun 2012 - apakah ini benar-benar diselesaikan (mana yang dianggap sebagai jawaban lol? Jika tidak i gonna write a nice wiki on thisdalam pertanyaan / jawaban saya.

Akan lebih baik untuk meningkatkan sistem Anda ke LTS.
— Ketan Patel

Jawaban:


28

Masalahnya adalah bahwa default-jrepaket tergantung pada OpenJDK 6 dan sebagian besar paket lain memiliki dependensi mereka didefinisikan default-jre | openjdk-6-jre | sun-java6-jre- jadi sampai OpenJDK 7 menjadi didukung secara resmi dan akan digunakan sebagai versi default, atau sampai semua paket yang bergantung pada Java memperbarui dependensinya, Anda akan harus tetap menggunakan OpenJDK 6 dan mengatur OpenJDK 7 sebagai penggunaan standar update-java-alternatives. Contoh untuk sistem 64-bit:

$ 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

Pada sistem 32-bit nama direktori akan berbeda, Anda dapat menemukan nama yang tepat menggunakan -lsakelar. Perintah kedua mungkin meludah banyak kesalahan; baik gunakan --jresakelar atau abaikan saja kesalahan - skrip mengubah apa yang dapat dan mengabaikan sisanya.

Seseorang secara teoritis dapat mengedit default-jrepaket untuk bergantung pada OpenJDK 7, tetapi diingatkan bahwa ini dapat menyebabkan lebih banyak ruginya daripada kebaikan.


2
Agar ini dapat bekerja dengan tepat, saya harus memastikan bahwa untuk setiap paket openjdk-6 atau icedtea-6 ada paket openjdk-7 atau icetea-7 yang sesuai, jika tidak pembaruan-java-alternatif akan gagal melakukan pergantian.
— Blair Zajac

2
Setelah menginstal icedtea-7-plugin ( $ sudo apt-get install icedtea-7-plugin) itu bekerja dengan baik di Ubuntu 12.04. Terima kasih.
— David

10

Untuk ini, Anda harus menginstal kedua versi jdk pada sistem Anda. Anda dapat menggunakan apt-get untuk mengunduh keduanya.

Setelah itu coba,

$ sudo update-alternatives --config java

dan pilih jdk yang ingin Anda gunakan.

Openjdk terkadang tidak menguntungkan, untuk beberapa aplikasi.

Anda juga harus mencoba oracle-java atau sun-java.

Tautan di bawah ini sangat berguna untuk tujuan ini:

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


3

OpenJDK 7 berada di repo ubuntu normal di 11.10, jika Anda mencari openjdk-7-jre dan openjdk-7-jdk dan menginstalnya menggunakan pusat apt-get / synaptic / software mereka harus mengganti openjdk-6, jika tidak Anda bisa menghapus paket openjdk-6- * pertama kali menggunakan apt-get purge openjdk-6-*


1
paket openjdk-7- * tampaknya dimaksudkan untuk diinstal berdampingan dengan openjdk-6- . Dan jika saya mencoba untuk menghapus openjdk-6- , ada banyak paket yang harus dihapus sebagai dependen (meskipun saya tahu beberapa dari aplikasi tersebut berfungsi sempurna dengan Java 7).
— Ivan

rupanya default-jremasih menunjuk ke Java 6.
— Thorbjørn Ravn Andersen

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.