17.10 openjdk dan oracle jdk 8 dan 9 parameter trustAnchors harus kosong


21

Saya baru saja menginstal 17.10 di VM baru. Mencoba mengatur lingkungan pengembangan, ketika saya menjalankan gradleatau ./gradlewsaya mendapatkan kesalahan berikut:

* 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

Ini terlepas dari versi gradle, versi java (baik openjdk dan oracle 8 dan 9 memiliki kesalahan) dan versi shadowjar. Ini membawa saya pada kesimpulan bahwa itu terkait dengan Ubuntu daripada terkait dengan gradle / openjdk / oracle.

Saya sudah mencoba memperbarui sertifikat CA, keduanya sudo update-ca-certificates -fdan sudo apt install ca-certificates-java --reinstall, tidak ada yang menyelesaikan masalah. Saya bahkan kembali ke mencoba dan diuji mematikannya dan lagi teknik tanpa pengaruh.

Apa masalahnya dan bagaimana cara memperbaikinya?


Memiliki masalah yang sama ini, dan menghapus / menginstal ulang dengan openjdk-8-jdktidak berfungsi untuk saya. Adakah yang tahu bagaimana ini bisa berfungsi? Saya sudah menjalankan autoremovesebelum menginstal openjdk-8-jdkdan kemudian openjdk-9-jdk, tapi itu satu-satunya hal yang bisa berbeda dari apa yang Anda katakan.
Andy

sama. Saya telah mencoba semua permutasi 8: jre, jdk, dan versi oracle.
0atman

Jawaban:


22

Saya menginstal ulang semuanya menggunakan apt-get dan itu tidak menyelesaikan masalah.

Solusi yang saya temukan berhasil: Buka Oracle dan unduh versi tar.gz dari jdk-8. Kemudian salin file cacerts dari itu ke / etc / ssl / certs / java / cacerts


2
Masalah aneh ini. Terima kasih telah membagikan solusi kerja Anda. Saya akhirnya menyalin file cacerts dari Ubuntu 16.04 saya dengan instalasi OpenJDK 8 untuk membuatnya berfungsi. Anehnya, yang cacertsdiinstal dengan OpenJDK 9 pada Ubuntu 17.10 tampaknya tidak kosong (ini lebih besar dari yang lama), itu hanya tidak berfungsi.
JeroenHoek

3
Alih-alih menyalin menempelkan sertifikat lama, Anda juga dapat membersihkan java-commons dan juga jdk, lalu menginstal ulang jdk. Dengan begitu, sertifikat akan diregenerasi dengan benar.
k0pernikus

1
Itulah satu-satunya solusi yang bekerja untuk saya di Ubuntu 18.04 / OpenJDK 11
zergussino

1
Menginstal ulang tidak berfungsi untuk saya baik di Ubuntu 18.04 / OpenJDK 11, jadi saya mengunduh jdk-10.0.1_linux-x64_bin.tar.gz. Anda menemukan cacertsdijdk-10.0.1/lib/security/cacerts
iGEL

Ini bekerja bahkan jika menyalin dari Windows JDK menginstal, membersihkan dan menginstal ulang tidak berfungsi (dengan openjdk 8, 9 atau 10), saya menggunakan WSL
FrankMonza

12

Saya mengalami masalah ini juga ketika mencoba mengatur scala build tool (sbt) pada instalasi 17.10 saya yang baru.

Solusi saya adalah membersihkan:

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

(Hanya membersihkan dan menginstal ulang jdk tidak cukup, saya masih memiliki javaperintah setelah itu. Hanya dengan membersihkan java-commonyang juga hilang dan menginstal ulang berhasil. Saya menganggap itu berkaitan dengan ca-certificates-java*paket, yang dibersihkan oleh java-common.)

Setelah itu, saya menginstal ulang java lagi (saya memilih hanya untuk openjdk-9):

sudo apt install openjdk-9-jdk

Ini memicu: Running hooks in /etc/ca-certificates/update.d...dan menambahkan banyak file cert. Sekarang sbt saya berhasil:

$ 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
...  

Terima kasih untuk ini - memecahkan masalah untuk saya. Saya punya file cacerts yang kosong sesuai dengan keytool, dan membersihkan dan menginstal ulang seperti yang Anda sarankan (jdk8 dalam kasus saya) memperbaikinya.
Brian Smith

Ini bekerja untuk saya dengan Linux Mint 19 (yang telah menginstal openjdk-11) dan saya ingin menggunakan openjdk-8
James

4

Saya telah menginstal ulang semuanya dari awal lagi dan masalah ini telah hilang. Yang saya lakukan berbeda adalah menginstal openjdk-8-jdksebelum menginstalopenjdk-9-jdk .

Berhasil. Apakah ada masalah ketergantungan yang aneh?


Ini juga berfungsi untuk saya, tetapi saya harus me-restart sistem. Pada dasarnya saya melakukan instlal openjdk-9-jdk, lalu 8. Saya uninstall keduanya dan redid itu 8 - lalu - 9. Saya juga selalu terus berjalan sudo update-ca-certificates -f. Itu bukan pagi dan hari ini saya mulai mengunduh Oracle JDK. Sebelum selesai saya menemukan karya openjdk dan gradle pull berhasil.
foxx1337

2
Saya juga harus membersihkan java-common. Saya menganggap masalah ini salah diinstal ca-certificates-java; yang dihapus juga dengan java commons dan pada reallallation itu membuat banyak file pem. Instalasi openjdk-8 tidak diperlukan.
k0pernikus

1

Saya menyalin file / etc / ssl / certs / java / cacerts dari cadangan instalasi yang lebih lama. Jika Anda memiliki sesuatu seperti itu, itu mungkin pilihan yang paling mudah. Pastikan untuk membuat cadangan file cacerts asli jika Anda mengalami masalah dengan aplikasi lain.


1

Oracle mengubah format file cacerts (dari JKS ke PCKS12), default yang disertakan JDK di Ubuntu sudah menggunakan PCKS12, tetapi Anda mungkin menggunakan JDK lama yang tidak dapat membacanya. Saya mengonversi file keystore saya ke JKS menggunakan keytool. Itulah sebabnya solusi untuk menyalin yang lebih lama berfungsi untuk orang lain, dan mengapa jawaban yang Anda terima juga berfungsi.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.