http://homepage3.nifty.com/satoshis/java/memo.ht …
上記のサイトを参考に、jarファイル内のクラスをインスタンス化しようとしているのですが、
clazz.newInstance();
を実行しようとすると、以下のようなエラーが発生します。
java.lang.IllegalAccessException: Class jp.co.AAAAA.BBBBB can not access a member of class CCCCC with modifiers ""
at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:57)
at java.lang.Class.newInstance0(Class.java:302)
at java.lang.Class.newInstance(Class.java:261)
at jp.co.loft.LogCut.main(LogCut.java:58)
※jp.co.AAAAA.BBBBB は実行クラス、CCCCCはjarファイル内のクラスです。
開発環境は、以下です。
eclipse2.1.1 + jdk1.5.0_02
どんな些細なことでもよいので、ご存知の方、ご教授願えないでしょうか。
よろしくお願いいたします。
No.4
- 回答日時:
こんにちは。
>public class CCCCC {
>CCCCC(){}
>public void cc(){}
>}
コンストラクタの修飾子が無指定ですよね。
BBBBBクラスは、jp.co.AAAAAパッケージなので、ここからはインスタンス化はできません。
プラグインにするのならpublic にしないといけないんじゃないでしょうか?
public class CCCCC {
public CCCCC(){}
public void cc(){}
}
この回答への補足
PecoPlusさん、回等ありがとうございます。
そうなんですよね。
mmitsuさんへの補足にも書いたのですが、ろくにソースを見ないで、「コンストラクタがpublicだ」って書いてしまったために、皆さんを混乱させてしまったみたいです。すみません。
No.3
- 回答日時:
あと、書き忘れましたがなぜJarファイルがあるのに、reflectが必要なケースってどんな時ですか?普通にclasspathに含めてimportじゃダメなんでしょうか?
想像力がなくてすみません(^^;
この回答への補足
A.jarに、B.jarの機能を追加したい。
そのときにわざわざA.jarのソースを修正してコンパイルしてjarを作り直して、ということをやりたくないという理由です。
ようはpluginの機能を実現したい、というのが理由です。
何はともあれ、書込みをしてくれたお二人のおかげで解決いたしました。誠にありがとうございました。
No.2
- 回答日時:
CCCCCクラスの宣言はどうなってますか?
どうしてもわからなければ、java.lang.Stringクラスなどで試してみてはどうでしょう。
この回答への補足
mmitsuさん、回答ありがとうございます。
クラスの宣言は以下のようになっています。
public class CCCCC {
CCCCC(){}
public void cc(){}
}
と、ここまで書いて気づいたのですが、コンストラクタがpublicになっていません!!!
昨日Bonjinさんの回答に補足したときは、ソースを見ることができなかったので、憶測で書いてしまいました。
publicにしたら、期待通りの動作をしてくれました。
この場を借りて、Bonjinさん、mmitsuさん、すみませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
- Java マイクラjavaでForgeを入れたいのですが、インストールした.jarファイルが展開されてしまい中 1 2023/07/28 22:30
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
関数内の変数に<summary>コメン...
-
範囲外の数値を代入したらエラ...
-
c++,ある関数のクラスから別の...
-
構造 他のクラスの構造体を別...
-
java.util.ArrayListクラスの継承
-
無名パッケージからのインポート
-
内部クラスのインスタンスを動...
-
super.paint(g)を呼び出す意...
-
C#にて別クラスの関数を使いたい
-
C++/C#間での構造体の引き渡し...
-
ひとつのファイルにクラスは1つ?
-
親クラスから子クラスへアクセス。
-
C# 子->親の通知にBeginInvoke...
-
import と extends について
-
C++でfriendクラスにしているの...
-
C#のクラスライブラリでメッセ...
-
継承したクラス側のクラス名の取得
-
C# インターフェイスの実装
-
「タイプ初期化子が例外をスロ...
-
変数名の付け方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クラス間でのデータ参照
-
関数内の変数に<summary>コメン...
-
c++,ある関数のクラスから別の...
-
範囲外の数値を代入したらエラ...
-
C#にて別クラスの関数を使いたい
-
無名パッケージからのインポート
-
java-別クラスの変数の使い方を...
-
SwingでgetContentPaneのエラー...
-
C++でfriendクラスにしているの...
-
C#でほかのファイルにある自作...
-
Java リフレクションについて
-
Java
-
import と extends について
-
C#のクラスライブラリでメッセ...
-
a href="..." とServlet
-
ひとつのファイルにクラスは1つ?
-
構造 他のクラスの構造体を別...
-
親クラスから子クラスへアクセス。
-
内部クラスのインスタンスを外...
-
visual studioのデザイナ画面で...
おすすめ情報