Ubuntu: OpenJDK 8 - Paket bulunamıyor


103

Bu yüzden Ubuntu'yu yeni kurdum ve bu bir Linux ortamında ilk çalışmam, bu yüzden buradaki acemiliğime katlanın.

Her neyse, Java 8 JDK'yı doğrudan Oracle'dan indirdim, ancak Java 8 için de bir OpenJDK olduğunu anlıyorum. İki sorum var.

  1. Oracle sürümü ile OpenJDK arasındaki fark nedir. Artılar ve eksiler?

  2. OpenJDK 8'i almaya çalıştığımda, yapamıyorum. Tavsiye için terminal komutunu ve buraya aldığım hata mesajını yapıştırıyorum. Yine, Linux için çok yeni, bu noktada bir saatten az bir süredir ilk Linux dağıtımımdayım.

    user@computer:~/Java$ sudo apt-get install openjdk-8-jdk
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    E: Unable to locate package openjdk-8-jdk
    

Herhangi bir yardım memnuniyetle karşılanacaktır. Bu arada, Oracle paketini kullanacağım. Teşekkürler.

Düzenle:

Yani şimdi yeni bir problemim var. OpenJDK 7'yi kurdum, Maven ile birlikte geldi ve ikiye bir anlaşma aldığımı fark etmeden önce kurdum. Şimdi JDK 7, Eclipse ve Maven var ve hepsi çalışıyor, ancak 8 yerine JDK 7'ye takılı kaldım.

Aşağıda bir bağlantı olduğunu gördüm, sabah saat 2'ye bakmayı düşünüyorum ve şu anda yorgunum. Bu yeni sayı için başka herhangi bir tavsiye memnuniyetle karşılanacaktır, aksi takdirde sabah ilk iş olarak o bağlantıyı kesinlikle kontrol edeceğim.



Ubuntu'nun hangi sürümünü çalıştırıyorsunuz? En son birkaç sürüm, bir kurulum seçeneği olarak mevcuttu.
Makoto

Senin sorunu çözer Stephen bağlantı :)
JUNED

Teşekkürler. Saat gece 2, yani yatmaya gidiyorum, ama sabah bağlantıyı kontrol edeceğim. Soruma ek bir sorunla bir düzenleme ekledim, eğer bir göz atabilirseniz harika olur. Mevcut bağlantı / cevap buna da yardımcı olacaksa, şu anda bakamayacak kadar yorgun olduğum için özür dilerim, sabah kontrol edeceğim.
user2223059

Ubuntu 14.10'deyim sanırım. En son çıkan uzun vadeli sürüm neyse.
user2223059

Yanıtlar:


126

GÜNCELLEME : aşağıdaki kök ayrıcalıkları olmadan kurulum


Sorununuzu çözebilecek halihazırda (yarı resmi) bir depo varsa paketleri ubuntu sistemine manuel olarak yüklememenizi tavsiye ederim. Dahası, geliştirme için Oracle JDK kullanın, sadece (çok düzensiz) uyumluluk sorunlarını önlemek için (yıllar önce denedim, şimdi kesinlikle daha iyi).

Ekle webupd8 sisteminize repo:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

Tercih ettiğiniz jdk sürümünü yükleyin (java-6'dan java-9'a sürümler mevcuttur):

sudo apt-get install oracle-java8-installer

Ayrıca openjdk ve oracle sürümlerini karıştırarak jdk'nin birden çok sürümünü kurabilirsiniz. Ardından, kurulu sürüm arasında geçiş yapmak için update-java-alternatives komutunu kullanabilirsiniz :

# list available jdk
update-java-alternatives --list

# use jdk7
sudo update-java-alternatives --set java-7-oracle

# use jdk8
sudo update-java-alternatives --set java-8-oracle

Gereksinimler

Yüklediğinizden add-apt-repository: command not foundemin olursanız software-properties-common:

sudo apt-get install software-properties-common

Daha eski bir Ubuntu sürümü kullanıyorsanız:

sudo apt-get install python-software-properties

Kök ayrıcalıkları olmadan JDK kurulumu

Hedef makinenizde yönetici haklarınız yoksa en basit bahsiniz, sdkmanzulu sertifikalı openjdk'yi kurmak için kullanmaktır :

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java

NOT : sdkman, varsayılan bir seçenek olmasa da resmi Oracle JDK'nın da kurulmasına izin verir. Mevcut sürümleri şununla görüntüleyin:

sdk ls java

Seçilen sürümü şununla kurun:

sdk install java <version>

Örneğin:

sdk install java 9.0.1-oracle

Komutlar sözlüğü

  • sudo <command> [command_arguments] : süper kullanıcı ayrıcalığıyla bir komut çalıştırın.

  • add-apt-repository <PPA_id> : Ubuntu (tıpkı her Debian türevleri gibi ve genel olarak her Linux dağıtımında olduğu gibi), paket bağımlılıkları ve güncelleme gibi şeyleri işleyen bir ana paket havuzuna sahiptir. Ubuntu'da, genellikle sistemde bulunmayan paketleri (oracle jdk gibi) veya mevcut olanların güncellenmiş sürümlerini içeren bir PPA (Kişisel Paket Arşivi) kullanarak ana depoyu genişletmek mümkündür (örnek: LTS'de LibreOffice 5 yalnızca bu yolla kullanılabilir PPA ).

  • apt-get [install|update|upgrade|purge|...] : sistemdeki her deponun durumunu değiştirmek için kullanılan "" komut satırı paket işleyicisidir (yükleme / güncelleme / yükseltme, deponun mevcut durumunun bir değişikliği olarak görülebilir).

Bizim durumumuzda : komutla sudo add-apt-repository ppa:webupd8team/javasisteme, bir sonraki depo güncellemesinin paket bilgilerini webupd8 deposundan da alması gerektiğini bildiriyoruz.

İle sudo apt-get updatebiz aslında sistem depoyu güncellemek (bütün bu işlemleri, süper kullanıcı ayrıcalıkları gerektirir biz başa getirebilir böylece Sudo komutlara).

sudo apt-get install oracle-java8-installer

  • update-java-alternatifleri (belirli bir java versiyonu güncelleme-alternatifleri ): Ubuntu çeşitli ambalajlarda aynı işlevi sağlayan (internet göz, derleme postalar, düzenleme bir metin dosyası veya Java / Javac yürütülebilir ... sağlar). Sistemin belirli bir görev verildiğinde sık kullanılan kullanıcı aracını seçmesine izin vermek için, altında sembolik bağları kullanan bir mekanizma /etc/alternatives/kullanılır. Jdk'yi yukarıda belirtildiği gibi güncellemeyi deneyin (java 7 ve java 8 arasında geçiş yapın) ve bu komutun çıktısının nasıl değiştirildiğini görün:

    ls -l /etc/alternatives/java*

Bizim durumumuzda : sudo update-java-alternatives --set java-8-oracle/ etc / alternatives altındaki sembolik bağlantıları java-8-oracle yürütülebilir dosyalarını gösterecek şekilde güncelleyin.

Ekstralar:

  • adam <command> : (hemen hemen) her kabuk komutu ve seçenekleri hakkında gerçekten iyi yazılmış ve ayrıntılı bir yardımı okumak için man'ı kullanmaya başlayın (bu küçük cevapta bahsettiğim her komutun bir kılavuz sayfası var, deneyin man update-java-alternatives).

  • apt-cache search <search_key> : sağlanan search_key ile ilgili bir paketi aramak için APT önbelleğini sorgulayın (paket adı veya paket açıklamasında bir kelime olabilir).

  • apt-cache show <package> : belirli bir paket için APT bilgilerini sağlar (paket sürümü, yüklü olsun veya olmasın, açıklama).


1
Sorun şu ki, "oracle-java8-installer paketi bulunamıyor" mesajı alıyorum. Sudo apt-get komutunu kullanarak openjdk 8'i almaya çalıştığımda da aynı şey oluyor.
user2223059

3
Bu, açık topluluk sürümü (openjre) değil (en azından şu şekilde etiketlenmiştir) java'nın Oracle ticari sürümüdür.
ThorSummoner

1
@basZero: Eğer yazılım özelliklerini yüklemeniz gerekir görünüyor: apt-get install software-properties-common. Sonuç olarak bu gereksinimi dahil etmek için yayını güncelleyeceğim. Teşekkürler
Giuseppe Ricupero

1
Bu cevap geçerli değil - oracle, java yükleyicinin doğrudan indirilmesini yasaklıyor. sudo apt-get install oracle-java8-installer başarısız
Alec Istomin

2
Zaten 4 saattir bu sorunu çözmeye çalışıyorum. Bu harika çözüm için teşekkürler!
ickyrr

116

Gördüğünüz gibi sadece java 1.7 yüklüyüm (bir Ubuntu 14.04 makinesinde).

update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64

Java 8'i yüklemek için yaptım,

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk

Daha sonra, şimdi java 7 ve 8'im var.

update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64

BONUS EKLENDİ (farklı sürümler arasında nasıl geçiş yapılır)

  • follwing komutunu terminalden çalıştırın:

sudo update-alternatives --config java

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      auto mode
  1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      manual mode
* 2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1069      manual mode

Press enter to keep the current choice[*], or type selection number:

Gördüğünüz gibi jdk 8'i açıyorum. Jdk 7'ye geçmek için tuşuna basın 1ve tuşuna basın Enter. , İçin javacde aynısını yapın sudo update-alternatives --config javac.

Değişikliği onaylamak için sürümleri kontrol edin: java -versionve javac -version.


2
OpenJDK'yi kurmak için hangi deponun gerekli olduğunu bilmiyordum! Çok teşekkürler.
cram2208

@ cram2208 size yardımcı olduğuna sevindim. yorum için teşekkürler.
samsamara

Openjdk-r sunucu için yeterince güvenli mi?
Wang

Ayrıntılı cevabınız için teşekkürler, bu çözüm benim için mükemmel bir şekilde çalışıyor.
Muddasir23

14

OpenJDK 8'i rastgele bir PPA veya özgür olmayan Oracle ikili dosyası yerine resmi Debian depolarından alıyorum. İşte böyle yaptım:

sudo apt-get install debian-keyring debian-archive-keyring

Yap /etc/apt/sources.list.d/debian-jessie-backports.list:

deb http://httpredir.debian.org/debian/ jessie-backports main

Yap /etc/apt/preferences.d/debian-jessie-backports:

Package: *
Pin: release o=Debian,a=jessie-backports
Pin-Priority: -200

Sonunda kurulumu yapın:

sudo apt-get update
sudo apt-get -t jessie-backports install openjdk-8-jdk

1
Ve nihayet son update-alternatives --config java ;-)
Javali

Çok teşekkürler! Bu benim için çalışan tek çözüm (Deb 8)

3
sudo apt-get update
sudo apt-get  install openjdk-8-jdk

bu çalışmalı


Lütfen bunun mevcut cevaplara ne kattığı ile ilgili bir açıklama ekleyin.
Gert Arnold

Windows'tan WSL2 kullanıyordum ve OpenJDK'yi kurmadan önce paketleri güncellemeyi unuttum ve aynı hatayı aldım. @GertArnold, Zoe'nin cevabı bu senaryoda bana yardımcı oldu.
pcdro

1

Aynı sorunu yaşıyordum ve bu sayfadaki tüm çözümleri denedim ama hiçbiri hile yapmadı.

Sonunda işe yarayan şey, universerepoyu repo listeme eklemekti . Bunu yapmak için aşağıdaki komutu çalıştırın

sudo add-apt-repository universe

Yukarıdaki komutu çalıştırdıktan sonra çalıştırabildim

sudo apt install openjdk-8-jre

sorunsuz ve paket kuruldu.

Umarım bu birine yardımcı olur.


Bu yanıt için neden olumsuz oy aldığımı bilmiyorum. Yanlış bir şey veya olası bir sorun varsa, lütfen başkalarının ve kendimin daha iyi anlamasına yardımcı olmak için bir yorum bırakın.
Daniel Black

0

Depoyu ekledikten sonra, JDKKurulumdan önce , deponun eklenebilmesi için önce bir güncelleme çalıştırmak isteyebilirsiniz. apt update

sonra kurulumunuza devam edin sudo apt install adoptopenjdk-8-hotspot

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.