- - PR -
SecurityExceptionの対処方法を教えて下さい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-12-20 11:02
作成したクラス(xyzClass)を起動するためドライバクラス(TestClass)を作成して
実行しましたが、以下のような結果となり大変困っております。原因として考えられ ることとその対処を教えて頂きたいと思っております。 よろしくお願いします Exception in thread "main" java.lang.SecurityException: Prohibited package name:java.lang at java.lang.Throwable.fillInStackTrace(Native Method) at java.lang.Throwable.<init>(Throwable.java:94) at java.lang.Exception.<init>(Exception.java:42) at java.lang.RuntimeException.<init>(RuntimeException.java:47) at java.lang.SecurityException.<init>(SecurityException.java:39) at java.lang.ClassLoader.defineClass(ClassLoader.java:485) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:110) at java.net.URLClassLoader.defineClass(URLClassLoader.java:251) at java.net.URLClassLoader.access$1(URLClassLoader.java:217) at java.net.URLClassLoader$1.run(URLClassLoader.java:198) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessController.doPrivileged(Compiled Code) at java.net.URLClassLoader.findClass(Compiled Code) at java.lang.ClassLoader.loadClass(Compiled Code) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:290) at java.lang.ClassLoader.loadClass(ClassLoader.java:256) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316) at TestClass.main(TestClass.java:29) 環境 Solaris 8.0 jdk1.4 以上 | ||||
|
投稿日時: 2006-12-20 11:27
翻訳してみました。
------------- スレッド「メイン」java.lang.SecurityExceptionの例外: 禁止されたパッケージ名: java.langのjava.lang.Throwable<イニット>におけるjava.lang.Exception<イニット>におけるjava.lang.RuntimeException<イニット>におけるjava.lang.Throwable.fillInStackTrace(ネイティブのMethod)(Throwable.java: 94)(Exception.java: 42)(RuntimeException.java: 47)のjava.lang; SecurityException<イニット>(SecurityException.java: 39) javaのjava.net.URLClassLoader.defineClass(URLClassLoader.java: 251)のjava.security.SecureClassLoader.defineClass(SecureClassLoader.java: 110)のjava.lang.ClassLoader.defineClass(ClassLoader.java: 485)で; java.lang.ClassLoader.loadClassInternalのjava.lang.ClassLoader.loadClass(ClassLoader.java: 256)のsun.misc.発射装置$AppClassLoader.loadClass(Launcher.java: 290)のjava.lang.ClassLoader.loadClass(コードをコンパイルする)のjava.net.URLClassLoader.findClass(コードをコンパイルする)のjava.security.AccessController.doPrivileged(コードをコンパイルする)のjava.security.AccessController.doPrivileged(ネイティブのメソッド)のjava.net.URLClassLoader$1.run(URLClassLoader.java: 198)のnet.URLClassLoader.access1ドル(URLClassLoader.java: 217)、(ClassLoader.java: TestClass.mainの316)(TestClass.java: 29) ------------- | ||||
|
投稿日時: 2006-12-20 11:35
のTestClass.javaの29行目はどうなってるんでしょうか? | ||||
|
投稿日時: 2006-12-20 12:43
最近みた例外と思ったら
[Jar ファイルからのクラス読み込み処理] のスレッドのソースを試したときに見た例外ですね。 (そういう点でスレッドで回答するのは、いい勉強になります) ただ単にloadClassに渡している名前がjava.langで始まっているだけだと思います。 return(loadClass(classname)); する前に System.out.println("classname=" + classname); を入れて確認してみてください。 java.lang.Objectあたりが名前になっていたら、 if (name.startsWith("java.")) return(Class.forName(name)); を前に入れておけばとりあえず例外にならなくなるでしょう。 | ||||
|
投稿日時: 2006-12-20 13:16
xyzClassがjava.lang.xyzClassだったとか。
ちょっと情報が少ないですね。 |
1