17.10 openjdkおよびoracle jdk 8および9 trustAnchorsパラメータは空ではない必要があります


21

17.10を新しいVMにインストールしました。実行するとき、gradleまたは./gradlew次のエラーが表示されるときに、開発環境をセットアップしようとしています。

* 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

これは、gradleバージョン、javaバージョン(openjdkとoracle 8および9の両方に障害がある)、shadowjarバージョンには関係ありません。これにより、gradle / openjdk / oracle関連ではなくUbuntu関連であるという結論に至ります。

私は両方、CA証明書を更新しようとしたsudo update-ca-certificates -fsudo apt install ca-certificates-java --reinstall、どちらもが問題を解決します。試してみて、テストを繰り返しても、何の影響も与えずにオフにしてから再度オンにしました。

問題は何ですか?どうすれば修正できますか?


これと同じ問題を抱え、およびアンインストール/再インストールとopenjdk-8-jdk私のために動作しませんでした。どのようにこれを機能させたのでしょうか?autoremoveインストールする前にを実行してからを実行しましたがopenjdk-8-jdk、それopenjdk-9-jdkはあなたが言ったこととは異なる可能性がある唯一のものです。
アンディ

同じ。8のすべての順列(jre、jdk、oracleバージョン)を試しました。
0atman

回答:


22

apt-getを使用してすべてを再インストールしましたが、問題は解決しませんでした。

動作することがわかったソリューション:Oracleに移動して、jdk-8のtar.gzバージョンをダウンロードします。次に、cacertsファイルをそこから/ etc / ssl / certs / java / cacertsにコピーします


2
これは奇妙な問題です。作業ソリューションを共有していただきありがとうございます。最終的に、OpenJDK 8をインストールしたUbuntu 16.04からcacertsファイルをコピーして、これを機能させました。奇妙なことに、cacertsUbuntu 17.10にOpenJDK 9でインストールされたものは空ではないようです(古いものよりも大きい)。
-JeroenHoek

3
古い証明書をコピーして貼り付ける代わりに、java-commonsとjdkをパージしてから、jdkを再インストールすることもできます。これにより、証明書が適切に再生成されます。
k0pernikus

1
Ubuntu 18.04 / OpenJDK 11
zergussino

1
Ubuntu 18.04 / OpenJDK 11でも再インストールは機能しませんでしたjdk-10.0.1_linux-x64_bin.tar.gz。あなたは見つけるcacertsjdk-10.0.1/lib/security/cacerts
IGEL

これは、Windows JDKインストールからのコピー、クリーニング、および再インストールが機能しなかった場合でも(openjdk 8、9、または10で)、私はWSLにいます
-FrankMonza

12

17.10の新規インストールでscalaビルドツール(sbt)をセットアップしようとしたときにも、この問題に遭遇しました。

私の解決策はパージすることでした:

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

(jdkをパージして再インストールするだけでは十分ではありませんでしたが、javaその後もコマンドがありました。java-commonこれもパージして、再インストールが機能しました。ca-certificates-java*パッケージに関連していると思われjava-commonます。

その後、再びJavaを再インストールしました(openjdk-9のみを選択しました)。

sudo apt install openjdk-9-jdk

これによりRunning hooks in /etc/ca-certificates/update.d...、多くの証明書ファイルが追加されました。今、私のsbtは成功しました:

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

これをありがとう-私のために問題を解決しました。キーツールによると空だったcacertsファイルがあり、あなたが提案したようにパージと再インストール(私の場合はjdk8)を修正しました。
ブライアンスミス

これは、Linux Mint 19(openjdk-11がインストールされている)で機能し、openjdk-8を使用したかった
James

4

すべてを最初から再インストールしましたが、この問題はなくなりました。私が別様にしたことは、インストールするopenjdk-8-jdk前にインストールすることだけopenjdk-9-jdkでした。

できます。奇妙な依存関係の問題はありますか?


それは私にとってもうまくいきましたが、システムを再起動する必要がありました。基本的にはopenjdk-9-jdk、8のインスタンスを実行し、その後8をアンインストールして、8から9を再編集しましたsudo update-ca-certificates -f。常に実行し続けました。朝ではなく、今日、Oracle JDKのダウンロードを開始しました。完了する前に、openjdkが動作し、gradleが正常にプルされることを発見しました。
foxx1337

2
私も一掃しなければならなかったjava-common。私は問題が誤ってインストールされたと仮定しca-certificates-javaます。Javaコモンズでも同様に削除され、再インサレーション時に多くのpemファイルが作成されます。openjdk-8をインストールする必要はありません。
k0pernikus

1

古いインストールのバックアップから/ etc / ssl / certs / java / cacertsファイルをコピーしました。そのようなものをお持ちの場合は、おそらく最も簡単なオプションです。他のアプリケーションで問題が発生した場合に備えて、元のcacertsファイルを必ずバックアップしてください。


1

Oracleはcacertsファイルの形式を変更しました(JKSからPCKS12)。Ubuntuに含まれるデフォルトのJDKはすでにPCKS12を使用していますが、おそらくそれを読み取れない古いJDKを使用しています。keytoolを使用してキーストアファイルをJKSに変換しました。それが、古いものをコピーする回避策が他の人にとってうまくいく理由であり、あなたの受け入れられた答えもうまくいく理由です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.