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.

Ivan
sumber
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.

jnv
sumber
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

shivshnkr
sumber
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-*

zat kimia
sumber
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
2

Repo dapat ditemukan di sini: https://launchpad.net/~openjdk/+archive/ppa

atau:

sudo apt-add-repository ppa:openjdk/ppa
sudo apt-get update
sudo apt-get upgrade

dengan asumsi Anda telah menginstal OpenJDK

LasseValentini
sumber
1
Tampaknya ini tidak dimaksudkan untuk 11.10.
Ivan