1

この有名な libGDX アプレット チュートリアルを試して、ゲームのアプレット バージョンを作成しました。巨大なスタック トレースを取得します (以下)。私は何を間違っていますか?

java.lang.SecurityException: invalid SHA1 signature file digest for org/lwjgl/util/applet/AppletLoader$2.class
at sun.security.util.SignatureFileVerifier.verifySection(Unknown Source)
at sun.security.util.SignatureFileVerifier.processImpl(Unknown Source)
at sun.security.util.SignatureFileVerifier.process(Unknown Source)
at java.util.jar.JarVerifier.processEntry(Unknown Source)
at java.util.jar.JarVerifier.update(Unknown Source)
at java.util.jar.JarFile.initializeVerifier(Unknown Source)
at java.util.jar.JarFile.ensureInitialization(Unknown Source)
at java.util.jar.JarFile.getCodeSources(Unknown Source)
at java.util.jar.JavaUtilJarAccessImpl.getCodeSources(Unknown Source)
at com.sun.deploy.cache.DeployCacheJarAccessImpl.getCodeSources(Unknown Source)
at com.sun.deploy.security.CPCallbackHandler$ParentCallback.openClassPathElement(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.getJarFile(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.access$800(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath$JarLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.ensureOpen(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath.getResource(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception: java.lang.SecurityException: invalid SHA1 signature file digest for org/lwjgl/util/applet/AppletLoader$2.class
4

2 に答える 2

2

私は同じ問題を抱えていました。チュートリアルlwjgl_util_applet.jarでは、最初に署名されたものとは異なる方法で署名してもらいます。META-INF/MANIFEST.MFJAR ファイルをと比較するとlwjgl_util_applet.jar、SHA-1 を使用していることがわかりますが、デフォルトは現在 SHA-256 です。

これを解決するには、再度署名する前にMETA-INFフォルダを削除してください。lwjgl_util_applet.jarこの後、これ以上エラーが発生することはありません。

を使用してアップロードせずに JAR ファイルを検証することもできますjarsigner -verify

于 2011-11-02T04:01:51.597 に答える
1

を含む JAR ファイルは、org.lwjgl.util.applet.AppletLoader署名後に改ざんされたようです。これは悪意のあるものである可能性があります (誰かが AppletLoader を置き換えた可能性があります)、または誰かが手動でファイルを更新し、JAR に再署名するのを忘れた可能性があります。それとも、これはチュートリアルのステップでしたか? 私はそれをちらりと見ただけでした。いずれにせよ、改ざんされたコードを実行するだけでなく、この例外をスローすることにより、Java は安全です。

どの JAR ファイルに が含まれていorg.lwjgl.util.applet.AppletLoaderても、LWJGL ホームページからその JAR を再度入手してください。

于 2011-10-30T05:09:32.167 に答える