17.10 openjdk e oracle jdk 8 e 9 il parametro trustAnchors deve essere non vuoto


21

Ho appena installato la 17.10 in una nuova VM. Sto tentando di impostare un ambiente di sviluppo, quando corro gradleo ./gradlewricevo il seguente errore:

* 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

Ciò è indipendente dalla versione gradle, dalla versione java (sia l'errore openjdk che l'oracolo 8 e 9) e la versione shadowjar. Questo mi porta alla conclusione che si tratta di Ubuntu piuttosto che di gradle / openjdk / oracle.

Ho provato ad aggiornare i certificati CA, entrambi sudo update-ca-certificates -fe sudo apt install ca-certificates-java --reinstall, nessuno dei quali risolve il problema. Sono anche tornato alla tecnica collaudata per spegnerlo e riaccenderlo senza alcun effetto.

Qual è il problema e come posso risolverlo?


Avere questo stesso problema e la disinstallazione / reinstallazione con openjdk-8-jdknon ha funzionato per me. Hai idea di come hai fatto a funzionare? Ho eseguito una autoremoveprima dell'installazione openjdk-8-jdke poi openjdk-9-jdk, ma questa è l'unica cosa che avrebbe potuto essere diversa da quella che hai detto.
Andy,

stesso. Ho provato tutte le permutazioni delle versioni 8: jre, jdk e oracle.
0atman,

Risposte:


22

Ho reinstallato tutto usando apt-get e questo non ha risolto il problema.

La soluzione che ho trovato funzionante: vai su Oracle e scarica la versione tar.gz di jdk-8. Quindi copia il file cacerts da quello in / etc / ssl / certs / java / cacerts


2
Strano problema questo. Grazie per aver condiviso la tua soluzione di lavoro. Ho finito per copiare il file cacerts dal mio Ubuntu 16.04 con l'installazione di OpenJDK 8 per farlo funzionare. Stranamente, l' cacertsinstallazione con OpenJDK 9 su Ubuntu 17.10 non sembra essere vuota (è più grande di quella precedente), semplicemente non funziona.
JeroenHoek,

3
Invece di copiare incollando vecchie certs, puoi anche eliminare java-commons e jdk, quindi reinstallare un jdk. In questo modo, i certificati verranno rigenerati correttamente.
k0pernikus,

1
Questa è l'unica soluzione che ha funzionato per me su Ubuntu 18.04 / OpenJDK 11
zergussino,

1
La reinstallazione non ha funzionato nemmeno per me su Ubuntu 18.04 / OpenJDK 11, quindi ho scaricato il file jdk-10.0.1_linux-x64_bin.tar.gz. Trovi cacertsinjdk-10.0.1/lib/security/cacerts
iGEL

Funziona anche se la copia da un'installazione JDK di Windows, la pulizia e la reinstallazione non hanno funzionato (con openjdk 8, 9 o 10), sono su WSL
FrankMonza,

12

Mi sono imbattuto anche in questo problema quando ho provato a installare lo strumento di costruzione scala (sbt) sulla mia nuova installazione 17.10.

La mia soluzione era eliminare:

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

(La sola eliminazione e reinstallazione di jdk non era sufficiente, javadopo di ciò avevo ancora un comando. Solo eliminando java-commonanche quello è andato via e quindi la reinstallazione ha funzionato. Presumo che si riferisca al ca-certificates-java*pacchetto, da cui viene eliminato java-common.)

Successivamente, ho reinstallato di nuovo java (ho optato solo per openjdk-9):

sudo apt install openjdk-9-jdk

Ciò ha innescato: Running hooks in /etc/ca-certificates/update.d...e aggiunto molti file di certificati. Ora il mio sbt build ha avuto successo:

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

Grazie per questo - risolto il problema per me. Avevo un file cacerts che era vuoto secondo il keytool, e lo spurgo e la reinstallazione come mi hai suggerito (jdk8 nel mio caso) lo hanno riparato.
Brian Smith,

Questo ha funzionato per me con Linux Mint 19 (su cui era installato openjdk-11) e volevo usare openjdk-8
James,

4

Ho reinstallato di nuovo tutto da zero e questo problema è scomparso. Tutto quello che ho fatto diversamente è stato installare openjdk-8-jdkprima dell'installazione openjdk-9-jdk.

Funziona. Ci sono strani problemi di dipendenza?


Ha funzionato anche per me, ma ho dovuto riavviare il sistema. Fondamentalmente ho eseguito un instlal di openjdk-9-jdk, poi 8. Ho disinstallato entrambi e lo ho rifatto 8 - poi - 9. Ho anche sempre continuato a funzionare sudo update-ca-certificates -f. Non era mattina e oggi ho iniziato a scaricare Oracle JDK. Prima che finisse, ho scoperto le opere di openjdk e la gradle pull con successo.
foxx1337,

2
Ho anche dovuto eliminare java-common. Presumo che il problema sia stato installato in modo errato ca-certificates-java; quello viene rimosso anche con java commons e alla reinserimento crea un mucchio di file pem. L'installazione di openjdk-8 non è necessaria.
k0pernikus,

1

Ho copiato un file / etc / ssl / certs / java / cacerts da un backup di un'installazione precedente. Se hai qualcosa del genere è probabilmente l'opzione più semplice. Assicurati di eseguire il backup del file cacerts originale in caso di problemi con altre applicazioni.


1

Oracle ha cambiato il formato del file cacerts (da JKS a PCKS12), il JDK incluso di default in Ubuntu utilizza già il PCKS12, ma probabilmente stai utilizzando un JDK più vecchio che non è in grado di leggerlo. Ho convertito il mio file keystore in JKS usando il keytool. Ecco perché la soluzione alternativa per copiare un vecchio funziona per altre persone e anche la risposta accettata funziona.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.