Je viens d'installer 17.10 sur une nouvelle machine virtuelle. Essayer de configurer un environnement de développement, lorsque j'exécute gradle
ou ./gradlew
que j'obtiens l'erreur suivante:
* 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
C'est indépendamment de la version gradle, de la version java (openjdk et oracle 8 et 9 ont le défaut) et de la version shadowjar. Cela m'amène à la conclusion que c'est lié à Ubuntu plutôt qu'à gradle / openjdk / oracle.
J'ai essayé de mettre à jour les certificats CA, les deux sudo update-ca-certificates -f
et sudo apt install ca-certificates-java --reinstall
, aucun d'eux ne résout le problème. Je suis même revenu à la technique éprouvée de l'éteindre et de la rallumer sans aucun effet.
Quel est le problème et comment le résoudre?
openjdk-8-jdk
n'a pas fonctionné pour moi. Une idée de comment vous avez fait fonctionner ça? J'ai exécuté unautoremove
avant l'installationopenjdk-8-jdk
puisopenjdk-9-jdk
, mais c'est la seule chose qui aurait pu être différente de ce que vous avez dit.Réponses:
J'ai réinstallé tout en utilisant apt-get et cela n'a pas résolu le problème.
La solution que j'ai trouvée fonctionne: allez sur Oracle et téléchargez la version tar.gz de jdk-8. Copiez ensuite le fichier cacerts depuis celui-ci dans / etc / ssl / certs / java / cacerts
la source
cacerts
installé avec OpenJDK 9 sur Ubuntu 17.10 ne semble pas être vide (il est plus grand que l'ancien), il ne fonctionne tout simplement pas.jdk-10.0.1_linux-x64_bin.tar.gz
. Vous trouvez lecacerts
dansjdk-10.0.1/lib/security/cacerts
J'ai également rencontré ce problème lors de la tentative de configuration de l'outil de création de scala (sbt) sur ma nouvelle installation 17.10.
Ma solution était de purger:
(Il ne suffisait pas de purger et de réinstaller le jdk, j'avais encore une
java
commande après cela. Seulement en purgeantjava-common
cela a également disparu, puis la réinstallation a fonctionné. Je suppose que cela concerne leca-certificates-java*
package, qui est purgé parjava-common
.)Ensuite, j'ai réinstallé java (j'ai opté uniquement pour openjdk-9):
Cela a déclenché:
Running hooks in /etc/ca-certificates/update.d...
et ajouté beaucoup de fichiers cert. Maintenant, mon sbt construit a réussi:la source
J'ai tout réinstallé à partir de zéro et ce problème a disparu. Tout ce que j'ai fait différemment était d'installer
openjdk-8-jdk
avant d'installeropenjdk-9-jdk
.Ça marche. Y a-t-il des problèmes de dépendance étranges?
la source
openjdk-9-jdk
, puis 8. J'ai désinstallé les deux et l'ai refait 8 - puis - 9. J'ai également toujours continué à fonctionnersudo update-ca-certificates -f
. Ce n'était pas le matin et aujourd'hui j'ai commencé à télécharger Oracle JDK. Avant de terminer, j'ai découvert avec succès les travaux openjdk et les tirages gradle.java-common
. Je suppose que le problème était mal installéca-certificates-java
; celui-ci est également supprimé avec java commons et lors de la réinsertion, il crée un tas de fichiers pem. L'installation d'openjdk-8 n'est pas nécessaire.J'ai copié un fichier / etc / ssl / certs / java / cacerts à partir d'une sauvegarde d'une ancienne installation. Si vous avez quelque chose comme ça, c'est probablement l'option la plus simple. Assurez-vous simplement de sauvegarder le fichier cacerts d'origine au cas où vous rencontriez des problèmes avec d'autres applications.
la source
Oracle a changé le format du fichier cacerts (de JKS à PCKS12), le JDK inclus par défaut dans Ubuntu utilise déjà le PCKS12, mais vous utilisez probablement un JDK plus ancien qui ne peut pas le lire. J'ai converti mon fichier de clés en JKS en utilisant le keytool. C'est pourquoi la solution de contournement pour copier un ancien fonctionne pour d'autres personnes, et pourquoi votre réponse acceptée fonctionne également.
la source