17.10 openjdk ve oracle jdk 8 ve 9, trustAnchors parametresi boş olmamalıdır


21

Daha yeni bir sanal makineye 17.10 yükledim. Çalıştığımda gradleveya ./gradlewaşağıdaki hatayı bulduğumda bir geliştirme ortamı oluşturmaya çalışıyorum :

* What went wrong:
Error resolving plugin [id: 'com.github.johnrengelman.shadow', version: '2.0.0']
> Could not GET 'https://plugins.gradle.org/api/gradle/4.0/plugin/use/com.github.johnrengelman.shadow/2.0.0'.
   > java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

Bu, gradle versiyonuna, java versiyonuna (hem openjdk hem de oracle 8 ve 9'da hata var) ve shadowjar versiyonundan bağımsızdır. Bu beni gradle / openjdk / oracle ile ilgili olmaktan ziyade Ubuntu ile ilgili olduğu sonucuna götürüyor.

Her ikisi de, CA sertifikalarını güncellenmesi denedim sudo update-ca-certificates -fve sudo apt install ca-certificates-java --reinstall, ikisi de sorunu çözer. Denenmiş ve test edilmiş olana bile geri döndüm, kapatıp tekrar tekniğine hiçbir etki etmeden döndüm.

Sorun nedir ve nasıl düzeltebilirim?


Bu aynı sorunun olması ve kaldırılması / yeniden yüklenmesi openjdk-8-jdkbenim için işe yaramadı. Nasıl çalıştığını bilen var mı? autoremoveYüklemeden önce bir tane çalıştırdım openjdk-8-jdkve sonra openjdk-9-jdk, ama söylediklerinden farklı olabilecek tek şey bu.
Andy

aynı. 8'in tüm permütasyonlarını denedim: jre, jdk ve oracle versiyonları.
0atman

Yanıtlar:


22

Apt-get kullanarak her şeyi yeniden yükledim ve bu sorunu çözmedi.

Çalışırken bulduğum çözüm: Oracle'a gidin ve jdk-8'in tar.gz sürümünü indirin. Sonra cacerts dosyasını bundan / etc / ssl / certs / java / cacerts dizinine kopyalayın.


2
Garip sorun bu. Çalışma çözümünüzü paylaştığınız için teşekkür ederiz. Bu çalışmasını sağlamak için OpenJDK 8 kurulumuyla Ubuntu 16.04'ten cacerts dosyasını kopyaladım. İşin garibi, cacertsUbuntu 17.10'da OpenJDK 9 yüklü olan boş görünmüyor (eskisinden daha büyük), sadece çalışmıyor.
JeroenHoek

3
Eski sertifikaları yapıştırmak yerine, java-commons'ı jdk ile temizleyebilir, ardından bir jdk tekrar yükleyebilirsiniz. Bu şekilde, cerlar uygun şekilde yenilenecektir.
k0pernikus

1
Bu benim için Ubuntu 18.04 / OpenJDK 11
zergussino'da

1
Yeniden yüklemek de benim için ya Ubuntu 18.04 / OpenJDK 11'de işe yaramadı, ben de indirdim jdk-10.0.1_linux-x64_bin.tar.gz. Sen bulmak cacertsiçindejdk-10.0.1/lib/security/cacerts
Igel

Bu, bir Windows JDK kurulumundan kopyalama, temizleme ve yeniden yükleme çalışmazsa (openjdk 8, 9 veya 10 ile) bile işe yarıyor, WSL'deyim
FrankMonza

12

Yeni 17.10 kurulumumda scala build tool (sbt) kurmaya çalışırken de bu sorunu çözdüm.

Benim çözümüm temizlemekti:

sudo apt purge openjdk-9-jdk openjdk-8-jdk java-common

(Sadece jdk'yi temizleme ve yeniden yükleme yeterli olmadı, ondan javasonra hala bir emir aldım . Sadece java-commono da temizlendi ve sonra da yeniden yükleme işlemi çalıştı. Onu temizleyen ca-certificates-java*paketle ilgili olduğunu varsayıyorum java-common.)

Daha sonra java'yı tekrar yükledim (sadece openjdk-9'u seçtim):

sudo apt install openjdk-9-jdk

Bu tetiklenir: Running hooks in /etc/ca-certificates/update.d...ve bir sürü cert dosyası ekledi. Şimdi benim sbt inşa başarılı oldu:

$ sbt
Getting org.scala-sbt sbt 1.1.0  (this may take some time)...
downloading https://repo1.maven.org/maven2/org/scala-sbt/sbt/1.1.0/sbt-1.1.0.jar ...
    [SUCCESSFUL ] org.scala-sbt#sbt;1.1.0!sbt.jar (657ms)
downloading https://repo1.maven.org/maven2/org/scala-sbt/main_2.12/1.1.0/main_2.12-1.1.0.jar
...  

Bunun için teşekkürler - benim için sorunu çözdü. Tuş takımına göre boş olan bir önbellek dosyam vardı ve önerdiğiniz şekilde temizleme ve yeniden yükleme (benim durumumda jdk8) düzeltti.
Brian Smith

Bu benim için Linux Mint 19 ile çalıştı (ki bunlar openjdk-11'i kurdu) ve
James

4

Her şeyi yeniden sıfırdan yeniden yükledim ve bu sorun yok oldu. Farklı yaptığım tek şey yüklemeden openjdk-8-jdkönce kurmaktı openjdk-9-jdk.

İşe yarıyor. Herhangi bir tuhaf bağımlılık sorunu var mı?


Aynı zamanda benim için çalıştı, ancak sistemi yeniden başlatmak zorunda kaldı. Temelde openjdk-9-jdkdaha sonra 8'lik bir instlal gerçekleştirdim . Her ikisini de kaldırdım ve tekrar 8 - daha sonra - 9'u değiştirdim sudo update-ca-certificates -f. Sabah değildi ve bugün Oracle JDK'yı indirmeye başladım. Bitmeden önce openjdk'nin çalıştığını ve gradle'in başarılı şekilde çalıştığını keşfettim.
foxx1337

2
Ben de temizlemek zorunda kaldım java-common. Sorunun yanlış yüklendiğini varsayıyorum ca-certificates-java; java commons ile de silinirse ve yeniden değerlendirme işleminde bir sürü pem dosyası oluşturur. Openjdk-8'in kurulumu gerekli değildir.
k0pernikus

1

/ Etc / ssl / certs / java / cacerts dosyasını eski bir kurulumun yedeğinden kopyaladım. Böyle bir şey varsa, muhtemelen en kolay seçenek. Diğer uygulamalarla sorun yaşamanız durumunda orijinal önbellek dosyasını yedeklediğinizden emin olun.


1

Oracle, önbellek dosyasının biçimini değiştirdi (JKS'den PCKS12'ye), Ubuntu'da bulunan varsayılan JDK zaten PCKS12'yi kullanıyor, ancak muhtemelen okuyamayan daha eski bir JDK kullanıyorsunuz. Anahtar deposunu, keytool'u kullanarak JKS'ye dönüştürdüm. Bu nedenle eski birini kopyalamak için geçici çözüm diğer insanlar için işe yarar ve kabul edilen cevabınız da bu şekilde işe yarar.

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.