Ubuntu 15.04とOpenJDK 7を使用して、Minecraftを実行しようとしています。これは私が得るものです。
編集:Sudo Java -jar Minecraft.jar
を使用するとMinecraftが動作しますが、スーパーユーザーなしでは動作しません。どうすれば修正できますか。常にスーパーユーザーとして実行できないのは、デスクトップでダブルクリックして実行できるようにするためです。
Downloading: https://s3.amazonaws.com/Minecraft.Download/launcher/launcher.pack.lzma (try 4/10)
Exception: javax.net.ssl.SSLException: Java.lang.RuntimeException: Unexpected error: Java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
実行するとき。 OpenJDK 8を使用してみましたが、これも同様に行いました。また、OracleのJava 8も試しました。
Minecraftは、OpenJDK 7を使用する古い14.04ラップトップで正常に動作しました。
編集2:SSL例外を取得した後、ランチャーを起動してPlay Offlineと言うので、「ランチャーログ」タブに行き、これを取得します(動作しないため、コード形式ではありません。編集してください!) :
[16:46:39 INFO]: Minecraft Launcher 1.6.11 (through bootstrap 5) started on linux...
[16:46:39 INFO]: Current time is May 25, 2015 4:46:39 PM
[16:46:39 INFO]: System.getProperty('os.name') == 'Linux'
[16:46:39 INFO]: System.getProperty('os.version') == '3.19.0-18-lowlatency'
[16:46:39 INFO]: System.getProperty('os.Arch') == 'AMD64'
[16:46:39 INFO]: System.getProperty('Java.version') == '1.8.0_45-internal'
[16:46:39 INFO]: System.getProperty('Java.vendor') == 'Oracle Corporation'
[16:46:39 INFO]: System.getProperty('Sun.Arch.data.model') == '64'
[16:46:39 INFO]: proxy == DIRECT
[16:46:39 INFO]: Refreshing local version list...
[16:46:39 INFO]: Refreshing remote version list...
[16:46:39 ERROR]: Unexpected exception refreshing version list
javax.net.ssl.SSLException: Java.lang.RuntimeException: Unexpected error: Java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at Sun.security.ssl.Alerts.getSSLException(Alerts.Java:208) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.Java:1937) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.Java:1894) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.Java:1877) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.Java:1398) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.Java:1375) ~[?:1.8.0_45-internal]
at Sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.Java:563) ~[?:1.8.0_45-internal]
at Sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.Java:185) ~[?:1.8.0_45-internal]
at Sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.Java:1512) ~[?:1.8.0_45-internal]
at Sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.Java:1440) ~[?:1.8.0_45-internal]
at Sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.Java:254) ~[?:1.8.0_45-internal]
at com.mojang.launcher.Http.performGet(Http.Java:54) ~[launcher.jar:1.6.11]
at net.minecraft.launcher.updater.RemoteVersionList.getContent(RemoteVersionList.Java:27) ~[launcher.jar:1.6.11]
at net.minecraft.launcher.updater.VersionList.refreshVersions(VersionList.Java:85) ~[launcher.jar:1.6.11]
at net.minecraft.launcher.updater.MinecraftVersionManager.refreshVersions(MinecraftVersionManager.Java:60) ~[launcher.jar:1.6.11]
at net.minecraft.launcher.Launcher$2.run(Launcher.Java:132) [launcher.jar:1.6.11]
at Java.util.concurrent.Executors$RunnableAdapter.call(Executors.Java:511) [?:1.8.0_45-internal]
at Java.util.concurrent.FutureTask.run(FutureTask.Java:266) [?:1.8.0_45-internal]
at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1142) [?:1.8.0_45-internal]
at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:617) [?:1.8.0_45-internal]
at Java.lang.Thread.run(Thread.Java:745) [?:1.8.0_45-internal]
Caused by: Java.lang.RuntimeException: Unexpected error: Java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at Sun.security.validator.PKIXValidator.<init>(PKIXValidator.Java:90) ~[?:1.8.0_45-internal]
at Sun.security.validator.Validator.getInstance(Validator.Java:179) ~[?:1.8.0_45-internal]
at Sun.security.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.Java:312) ~[?:1.8.0_45-internal]
at Sun.security.ssl.X509TrustManagerImpl.checkTrustedInit(X509TrustManagerImpl.Java:171) ~[?:1.8.0_45-internal]
at Sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.Java:184) ~[?:1.8.0_45-internal]
at Sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.Java:124) ~[?:1.8.0_45-internal]
at Sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.Java:1460) ~[?:1.8.0_45-internal]
at Sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.Java:212) ~[?:1.8.0_45-internal]
at Sun.security.ssl.Handshaker.processLoop(Handshaker.Java:979) ~[?:1.8.0_45-internal]
at Sun.security.ssl.Handshaker.process_record(Handshaker.Java:914) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.Java:1050) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.Java:1363) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.Java:1391) ~[?:1.8.0_45-internal]
... 16 more
Caused by: Java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at Java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.Java:200) ~[?:1.8.0_45-internal]
at Java.security.cert.PKIXParameters.<init>(PKIXParameters.Java:120) ~[?:1.8.0_45-internal]
at Java.security.cert.PKIXBuilderParameters.<init>(PKIXBuilderParameters.Java:104) ~[?:1.8.0_45-internal]
at Sun.security.validator.PKIXValidator.<init>(PKIXValidator.Java:88) ~[?:1.8.0_45-internal]
at Sun.security.validator.Validator.getInstance(Validator.Java:179) ~[?:1.8.0_45-internal]
at Sun.security.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.Java:312) ~[?:1.8.0_45-internal]
at Sun.security.ssl.X509TrustManagerImpl.checkTrustedInit(X509TrustManagerImpl.Java:171) ~[?:1.8.0_45-internal]
at Sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.Java:184) ~[?:1.8.0_45-internal]
at Sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.Java:124) ~[?:1.8.0_45-internal]
at Sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.Java:1460) ~[?:1.8.0_45-internal]
at Sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.Java:212) ~[?:1.8.0_45-internal]
at Sun.security.ssl.Handshaker.processLoop(Handshaker.Java:979) ~[?:1.8.0_45-internal]
at Sun.security.ssl.Handshaker.process_record(Handshaker.Java:914) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.Java:1050) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.Java:1363) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.Java:1391) ~[?:1.8.0_45-internal]
... 16 more
[16:46:40 INFO]: Loaded 2 profile(s); selected 'AsherMaster'
[16:46:40 INFO]: Refreshing auth...
[16:46:40 INFO]: Logging in with access token
[16:46:40 ERROR]: Exception whilst logging into profile
com.mojang.authlib.exceptions.AuthenticationUnavailableException: Cannot contact authentication server
at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.Java:71) ~[launcher.jar:1.6.11]
at com.mojang.authlib.yggdrasil.YggdrasilUserAuthentication.logInWithToken(YggdrasilUserAuthentication.Java:132) ~[launcher.jar:1.6.11]
at com.mojang.authlib.yggdrasil.YggdrasilUserAuthentication.logIn(YggdrasilUserAuthentication.Java:55) ~[launcher.jar:1.6.11]
at net.minecraft.launcher.Launcher.ensureLoggedIn(Launcher.Java:214) [launcher.jar:1.6.11]
at net.minecraft.launcher.Launcher$2.run(Launcher.Java:168) [launcher.jar:1.6.11]
at Java.util.concurrent.Executors$RunnableAdapter.call(Executors.Java:511) [?:1.8.0_45-internal]
at Java.util.concurrent.FutureTask.run(FutureTask.Java:266) [?:1.8.0_45-internal]
at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1142) [?:1.8.0_45-internal]
at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:617) [?:1.8.0_45-internal]
at Java.lang.Thread.run(Thread.Java:745) [?:1.8.0_45-internal]
Caused by: javax.net.ssl.SSLException: Java.lang.RuntimeException: Unexpected error: Java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at Sun.security.ssl.Alerts.getSSLException(Alerts.Java:208) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.Java:1937) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.Java:1894) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.Java:1877) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.Java:1398) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.Java:1375) ~[?:1.8.0_45-internal]
at Sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.Java:563) ~[?:1.8.0_45-internal]
at Sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.Java:185) ~[?:1.8.0_45-internal]
at Sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.Java:1282) ~[?:1.8.0_45-internal]
at Sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.Java:1257) ~[?:1.8.0_45-internal]
at Sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.Java:250) ~[?:1.8.0_45-internal]
at com.mojang.authlib.HttpAuthenticationService.performPostRequest(HttpAuthenticationService.Java:73) ~[launcher.jar:1.6.11]
at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.Java:54) ~[launcher.jar:1.6.11]
... 9 more
Caused by: Java.lang.RuntimeException: Unexpected error: Java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at Sun.security.validator.PKIXValidator.<init>(PKIXValidator.Java:90) ~[?:1.8.0_45-internal]
at Sun.security.validator.Validator.getInstance(Validator.Java:179) ~[?:1.8.0_45-internal]
at Sun.security.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.Java:312) ~[?:1.8.0_45-internal]
at Sun.security.ssl.X509TrustManagerImpl.checkTrustedInit(X509TrustManagerImpl.Java:171) ~[?:1.8.0_45-internal]
at Sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.Java:184) ~[?:1.8.0_45-internal]
at Sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.Java:124) ~[?:1.8.0_45-internal]
at Sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.Java:1460) ~[?:1.8.0_45-internal]
at Sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.Java:212) ~[?:1.8.0_45-internal]
at Sun.security.ssl.Handshaker.processLoop(Handshaker.Java:979) ~[?:1.8.0_45-internal]
at Sun.security.ssl.Handshaker.process_record(Handshaker.Java:914) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.Java:1050) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.Java:1363) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.Java:1391) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.Java:1375) ~[?:1.8.0_45-internal]
at Sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.Java:563) ~[?:1.8.0_45-internal]
at Sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.Java:185) ~[?:1.8.0_45-internal]
at Sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.Java:1282) ~[?:1.8.0_45-internal]
at Sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.Java:1257) ~[?:1.8.0_45-internal]
at Sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.Java:250) ~[?:1.8.0_45-internal]
at com.mojang.authlib.HttpAuthenticationService.performPostRequest(HttpAuthenticationService.Java:73) ~[launcher.jar:1.6.11]
at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.Java:54) ~[launcher.jar:1.6.11]
... 9 more
Caused by: Java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at Java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.Java:200) ~[?:1.8.0_45-internal]
at Java.security.cert.PKIXParameters.<init>(PKIXParameters.Java:120) ~[?:1.8.0_45-internal]
at Java.security.cert.PKIXBuilderParameters.<init>(PKIXBuilderParameters.Java:104) ~[?:1.8.0_45-internal]
at Sun.security.validator.PKIXValidator.<init>(PKIXValidator.Java:88) ~[?:1.8.0_45-internal]
at Sun.security.validator.Validator.getInstance(Validator.Java:179) ~[?:1.8.0_45-internal]
at Sun.security.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.Java:312) ~[?:1.8.0_45-internal]
at Sun.security.ssl.X509TrustManagerImpl.checkTrustedInit(X509TrustManagerImpl.Java:171) ~[?:1.8.0_45-internal]
at Sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.Java:184) ~[?:1.8.0_45-internal]
at Sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.Java:124) ~[?:1.8.0_45-internal]
at Sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.Java:1460) ~[?:1.8.0_45-internal]
at Sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.Java:212) ~[?:1.8.0_45-internal]
at Sun.security.ssl.Handshaker.processLoop(Handshaker.Java:979) ~[?:1.8.0_45-internal]
at Sun.security.ssl.Handshaker.process_record(Handshaker.Java:914) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.Java:1050) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.Java:1363) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.Java:1391) ~[?:1.8.0_45-internal]
at Sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.Java:1375) ~[?:1.8.0_45-internal]
at Sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.Java:563) ~[?:1.8.0_45-internal]
at Sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.Java:185) ~[?:1.8.0_45-internal]
at Sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.Java:1282) ~[?:1.8.0_45-internal]
at Sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.Java:1257) ~[?:1.8.0_45-internal]
at Sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.Java:250) ~[?:1.8.0_45-internal]
at com.mojang.authlib.HttpAuthenticationService.performPostRequest(HttpAuthenticationService.Java:73) ~[launcher.jar:1.6.11]
at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.Java:54) ~[launcher.jar:1.6.11]
... 9 more
解決しました! MinecraftのすべてのSSLエラーを修正する方法は次のとおりです。
別のLinuxコンピューターの「cacerts」ファイルが必要なので、別のLinux PCで次のコマンドを実行します。
readlink -f /usr/bin/Java | sed "s:bin/Java::"
そのパスに移動します(/usr/lib/jvm/Java-8-openjdk-AMD64/jre/
のようなもの)。
コンピューターでコマンドを再度実行し、そのパスに移動します。
readlink -f /usr/bin/Java | sed "s:bin/Java::"
Sudo -H nautilus
を使用して「ファイル」を開く必要があります。別のPCで「cacerts」ファイルが見つからない場合は、このパスの/etc/ssl/certs/Java/
を確認すると、cacertsが表示されます。ただし、この動作を保証することはできません。
実際には、コマンドプロンプトで次のように入力する方が適切です。
Sudo update-ca-certificates -f
ターミナルを開き、次のコマンドを実行します。
Sudo apt-get install --reinstall ca-certificates-Java
また、システムの時刻設定が正しいことを確認してください。
引用:
基本的に、MinecraftはSSLを使用してログインを保護しますが、Javaには検証に必要な証明書がありませんでした。 Minecraftランチャーは実際により良いエラーメッセージを表示するはずですが、これは実際にはUbuntuのせいでした。
ca-certificates-Java
パッケージをインストールする必要がありますが、Ubuntuのインストールでは壊れていました。ls /etc/ssl/certs/Java/cacerts
を試してください。見つからない場合は、友人または別のUnixマシンからコピーする必要があります。見知らぬ人からセキュリティファイルをコピーしたくない…
他の誰も私のために働かなかった後、私は最終的に解決策を見つけました。 this バグレポートの最後に、この魔法のような一連のコマンドを見つけました。
Sudo dpkg --purge --force-depends ca-certificates-Java
その後:
Sudo apt-get install ca-certificates-Java
これで問題はすぐに解決しました。