1

私は、すべて同じ証明書によって署名された jar のみを持つアプリケーションを持っています。Webstart でアプリケーションを実行したくありません。アプリケーションはコンパイラを実行し、コンパイルされたコードは LWJGL を実行します。ただし、アプリケーションを実行すると、コンパイルされたコードによって、文字通り LWJGL(-library) パッケージが見つからないというエラーが返されます (元のアプリケーションでは問題なく表示されます)。アプリケーションを Trusted-Library としてコンパイルすると、同様にエラーが発生します。

Exception in thread "CompilerThread" java.lang.NoClassDefFoundError: com/sun/tools/javac/api/JavacTool
    at customcompile.CustomCompile$2.run(CustomCompile.java:82)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.sun.tools.javac.api.JavacTool
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 2 more

http://download.oracle.com/javase/6/docs/technotes/guides/jweb/mixed_code.html 私はこのサイトを見つけましたが、特定の主題についてあまり賢くはありません。コンパイルされたコードは、他のコードとは異なる方法で処理されます。

誰でもこれで私を助けることができますか? それともクリア?

編集: コンパイルされたコードは署名なしとして扱われると結論付けました。ライブラリを認識させるには、それらをクラスパスに追加する必要があります。

4

1 に答える 1

0

System.getProperty 呼び出しなどを署名付きクラスにリダイレクトすると、署名されていないコードの問題が解決され、間接的に権限が増えると思います。

于 2011-08-24T09:41:11.807 に答える