- PR -

SecurityExceptionの対処方法を教えて下さい

1
投稿者投稿内容
会議室デビュー日: 2006/09/28
投稿数: 10
投稿日時: 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

以上
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 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)
-------------
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-12-20 11:35
引用:

榊さんの書き込み (2006-12-20 11:02) より:
at TestClass.main(TestClass.java:29)



のTestClass.javaの29行目はどうなってるんでしょうか?
だっちょ
大ベテラン
会議室デビュー日: 2006/12/05
投稿数: 115
投稿日時: 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));
を前に入れておけばとりあえず例外にならなくなるでしょう。

かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-12-20 13:16
xyzClassがjava.lang.xyzClassだったとか。
ちょっと情報が少ないですね。
1

スキルアップ/キャリアアップ(JOB@IT)