OpenJDK 6, OpenJDK 7 ile nasıl değiştirilir?


33

Şaşırtıcı bir şekilde (yaklaşık 4 ay önce OpenJDK 7'nin genel kullanılabilirliğine sunulmasıyla) Ubuntu 11.10, varsayılan olarak 7 yerine hala OpenJDK 6'yı kullanıyor. Bunu en iyi nasıl düzeltebilirim? OpenJDK 6'yı tamamen kaldırmayı ve OpenJDK 7'nin default-jdk ve default-jre olmasını beklerdim.

Resmi Oracle tarball'lerini istemiyorum, deb reposlarını istiyorum - standart Ubuntu yolu.


Birisinin bunu bir Debian paketine yerleştirmesi ve Launchpad'deki bir PPA'ya yerleştirmesi gerekecekti. Henüz kimse yapmadıysa, bir .deb yapabilir veya tar'ı yükleyebilirsiniz.
Martin Ueding

12.04 ile hala durum
Thorbjørn Ravn Andersen

2011 Yılı - Şimdi 2012 Yılı - bu gerçekten çözüldü (hangisi cevap olarak kabul edildi lol? i gonna write a nice wiki on thisBenim sorum /

Sisteminizi LTS'ye yükseltmek daha iyi olacaktır.
Ketan Patel,

Yanıtlar:


28

Sorun şu ki, default-jrepaket OpenJDK 6'ya bağlı ve diğer paketlerin çoğu bağımlılıklarına sahip default-jre | openjdk-6-jre | sun-java6-jre- bu yüzden OpenJDK 7 resmi olarak destekleninceye ve varsayılan sürüm olarak kullanılacak olana veya tüm Java bağımlı paketleri bağımlılıklarını güncelleyene kadar, OpenJDK 6'yı etrafta tutmalı ve OpenJDK 7'yi varsayılan olarak kullanmalı update-java-alternatives. 64 bit sistem için örnek:

$ 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-bit sistemde dizin adı değişecektir, -lanahtarı kullanarak doğru ismi bulabilirsiniz . İkinci komut bir çok hataya yol açabilir; ya --jreanahtar kullanın ya da sadece hataları yoksayın - komut dosyası yapabileceklerini değiştirir ve gerisini yok sayar.

Bir kişi teorik default-jreolarak OpenJDK 7'ye bağlı olarak paketi düzenleyebilir , ancak bunun iyiden daha fazla zarara neden olabileceği konusunda uyarılabilir.


2
Bunun kesin olarak çalışabilmesi için her openjdk-6 veya icedtea-6 paketi için karşılık gelen bir openjdk-7 veya icetea-7 paketi bulunduğundan emin olmak zorunda kaldım, aksi takdirde güncelleme-java alternatifleri geçişi gerçekleştiremez.
Blair Zajac

2
İcedtea-7-plugin ( $ sudo apt-get install icedtea-7-plugin) programını kurduktan sonra Ubuntu 12.04'te iyi çalıştı. Teşekkürler.
David,

10

Bunun için sisteminizde her iki jdk sürümünün yüklü olması gerekir. Her ikisini de indirmek için apt-get kullanabilirsiniz.

Bu denemeden sonra

$ sudo update-alternatives --config java

ve kullanmak istediğiniz jdk'yi seçin.

Openjdk bazen bazı uygulamalar için elverişsizdir.

Oracle-java veya sun-java'yı da denemelisiniz.

Aşağıdaki link bu amaç için çok kullanışlıdır:

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


3

OpenJDK 7, 11.10'da normal ubuntu depolarında, openjdk-7-jre ve openjdk-7-jdk'leri ararsanız ve onları apt-get / synaptic / software merkezini kullanarak kurarsanız, openjdk-6'nın yerini almalılar. openjdk-6- * paketlerini önce kullanarak kaldırabilirsiniz. apt-get purge openjdk-6-*


1
openjdk-7- * paketlerinin yan yana openjdk-6- ile kurulduğu anlaşılıyor . Ve eğer openjdk-6- 'yu kaldırmaya çalışırsam , bağımlı olarak çıkarılacak tonlarca paket var (bu uygulamaların bazılarının Java 7 ile mükemmel çalıştığını bilmeme rağmen).
Ivan

görünüşe göre default-jrehala Java 6 işaret ediyor.
Thorbjørn Ravn Andersen

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.