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.