1

私はオフィスでEclipse 32ビットを使用しており、JavaASTを解析するJavaコードを開発していますが、自宅でプログラムを実行しようとすると、この例外が発生します。また、例外が発生した場所も提供しています。

この例外を解決するにはどうすればよいですか?

例外行

ASTParser parser = ASTParser.newParser(AST.JLS3);

セキュリティ例外

Exception in thread "main" java.lang.SecurityException: class "org.eclipse.core.runtime.Plugin"'s signer information does not match signer information of other classes in the same package
    at java.lang.ClassLoader.checkCerts(ClassLoader.java:943)
    at java.lang.ClassLoader.preDefineClass(ClassLoader.java:657)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:785)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at org.eclipse.jdt.core.dom.ASTParser.initializeDefaults(ASTParser.java:235)
    at org.eclipse.jdt.core.dom.ASTParser.<init>(ASTParser.java:218)
    at org.eclipse.jdt.core.dom.ASTParser.newParser(ASTParser.java:118)
    at tester.runTest.main(runTest.java:33)
4

2 に答える 2

1

Javaドキュメントのこのページを参照してください:JARファイル内のパッケージのシール。それがあなたが見ているエラーの考えられる原因です。

つまり、jarファイルが封印されると、JVMは、そのjarのパッケージのすべてのクラスをそのjar内で定義する必要があると想定します。プロジェクトの他の部分に同じパッケージに属するコードがある場合、それはセキュリティ例外として扱われます。

自宅で実行しているコードが、オフィスで実行しているコードと同じように構成されているかどうかを確認します。.javaそのjarファイルで定義されているのと同じパッケージに属する、CLASSPATHからアクセス可能な通常のファイルで定義されているクラスがある場合があります。プロジェクトから不要な依存関係を削除して(作業環境にできるだけ近くなるように)、それで問題が解決するかどうかを確認してください。

編集:私は封印されたものと間違えて署名したかもしれません; したがって、関連するドキュメントは、JARファイルの署名と検証です。考えられる原因と考えられる解決策は同じままですが...

于 2012-05-11T05:27:46.687 に答える