Saya baru saja menginstal 17.10 di VM baru. Mencoba mengatur lingkungan pengembangan, ketika saya menjalankan gradle
atau ./gradlew
saya 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 -f
dan 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?
openjdk-8-jdk
tidak berfungsi untuk saya. Adakah yang tahu bagaimana ini bisa berfungsi? Saya sudah menjalankanautoremove
sebelum menginstalopenjdk-8-jdk
dan kemudianopenjdk-9-jdk
, tapi itu satu-satunya hal yang bisa berbeda dari apa yang Anda katakan.Jawaban:
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
sumber
cacerts
diinstal dengan OpenJDK 9 pada Ubuntu 17.10 tampaknya tidak kosong (ini lebih besar dari yang lama), itu hanya tidak berfungsi.jdk-10.0.1_linux-x64_bin.tar.gz
. Anda menemukancacerts
dijdk-10.0.1/lib/security/cacerts
Saya mengalami masalah ini juga ketika mencoba mengatur scala build tool (sbt) pada instalasi 17.10 saya yang baru.
Solusi saya adalah membersihkan:
(Hanya membersihkan dan menginstal ulang jdk tidak cukup, saya masih memiliki
java
perintah setelah itu. Hanya dengan membersihkanjava-common
yang juga hilang dan menginstal ulang berhasil. Saya menganggap itu berkaitan denganca-certificates-java*
paket, yang dibersihkan olehjava-common
.)Setelah itu, saya menginstal ulang java lagi (saya memilih hanya untuk openjdk-9):
Ini memicu:
Running hooks in /etc/ca-certificates/update.d...
dan menambahkan banyak file cert. Sekarang sbt saya berhasil:sumber
Saya telah menginstal ulang semuanya dari awal lagi dan masalah ini telah hilang. Yang saya lakukan berbeda adalah menginstal
openjdk-8-jdk
sebelum menginstalopenjdk-9-jdk
.Berhasil. Apakah ada masalah ketergantungan yang aneh?
sumber
openjdk-9-jdk
, lalu 8. Saya uninstall keduanya dan redid itu 8 - lalu - 9. Saya juga selalu terus berjalansudo 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.java-common
. Saya menganggap masalah ini salah diinstalca-certificates-java
; yang dihapus juga dengan java commons dan pada reallallation itu membuat banyak file pem. Instalasi openjdk-8 tidak diperlukan.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.
sumber
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.
sumber