web-dev-qa-db-fra.com

17.10 openjdk et Oracle jdk 8 et 9, le paramètre trustAnchors doit être non vide

Je viens d'installer 17.10 dans une nouvelle VM. En essayant de configurer un environnement de développement, lorsque j'exécute gradle ou ./gradlew, le message d'erreur suivant s'affiche:

* 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

Quelle que soit la version de Gradle, Java version (openjdk et Oracle 8 et 9 sont tous deux défectueux) et la version shadowjar. Cela m'amène à conclure qu'il s'agit d'un problème lié à Ubuntu plutôt que de niveau/openjdk/Oracle.

J'ai essayé de mettre à jour les certificats de l'autorité de certification, Sudo update-ca-certificates -f et Sudo apt install ca-certificates-Java --reinstall, qui ne résolvent pas le problème. Je suis même revenu à la technique éprouvée d'éteindre et de rallumer sans technique.

Quel est le problème et comment puis-je le résoudre?

21
amb85

J'ai tout réinstallé à partir de zéro et ce problème a disparu. Tout ce que j'ai fait différemment, c'est installer openjdk-8-jdk avant d'installer openjdk-9-jdk.

Ça marche. Existe-t-il des problèmes de dépendance étranges?

4
amb85

J'ai tout réinstallé 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 à partir de celui-ci dans/etc/ssl/certs/Java/cacerts

22
Tyler Ruppert

J'ai rencontré ce problème également en essayant de configurer scala outil de compilation (sbt) sur ma nouvelle installation 17.10.

Ma solution était de purger:

Sudo apt purge openjdk-9-jdk openjdk-8-jdk Java-common

(Simplement purger et réinstaller le jdk ne suffisait pas, il me restait encore une commande Java. Seulement en purgeant Java-common qui a également disparu et que la réinstallation a fonctionné. Je suppose que cela concerne le paquet ca-certificates-Java* qui est purgé par Java-common.)

Ensuite, j'ai réinstallé Java (je n'ai opté que pour openjdk-9):

Sudo apt install openjdk-9-jdk

Cela a déclenché: Running hooks in /etc/ca-certificates/update.d... et ajouté beaucoup de fichiers de certificats. Maintenant, ma sbt construit a été un succès:

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

J'ai copié un fichier/etc/ssl/certs/Java/cacerts à partir d'une sauvegarde d'une installation plus ancienne. Si vous avez quelque chose comme ça, c'est probablement l'option la plus simple. Assurez-vous simplement de sauvegarder le fichier cacerts original au cas où vous auriez des problèmes avec d’autres applications.

1
smakks

Oracle a modifié le format du fichier cacerts (de JKS à PCKS12). Le JDK inclus par défaut dans Ubuntu utilise déjà PCKS12, mais vous utilisez probablement un ancien JDK qui n'est pas capable de le lire. J'ai converti mon fichier de magasin de clés en JKS à l'aide de l'outil keytool. C’est pourquoi la solution de contournement consistant à copier une version plus ancienne fonctionne pour d’autres personnes et pourquoi votre réponse acceptée fonctionne également.

1
Nicolas Mommaerts