リフレクションライブラリを使用せずに、ランタイムコンパイル済みクラスを使用するためのライブラリまたは回避策が存在するかどうかを知りたいです(クラスを動的に生成し、.javaを記述してから、.classでコンパイルします)。
リフレクションを使用したロード私は常に次のように作業する必要があります。
//path where my newly generated classes are
File file = new File("e:\\tmp");
// Convert File to a URL
URL url = file.toURI().toURL();
URL[] urls = new URL[]{url};
ClassLoader cl = new URLClassLoader(urls);
Class cls = cl.loadClass("eu.dataaccess.footballpool.TGoal");
// Create an instance of the class just loaded
Object o = cls.newInstance();
Method method2 = cls.getDeclaredMethod("getIMinute");
Object result2 = method2.invoke(o);
私の質問は、実行時に使用することがどういうわけか可能かどうかです
TGoal x = new TGoal();
と
x.getIMinute();
編集:私が望んでいたように行動することは不可能のようです。私は質問を次のように変更します:ロードされたパッケージのクラスがmethod.invokeなしで相互に通信できるように、実行時にパッケージ全体をロードすることは可能ですか?その間、パッケージのメインアクティベーションはメソッドinvoke()?
運が悪かったのですが、「エラー:シンボルが見つかりません」というエラーが発生しました。ランタイムにロードされたクラスが相互に通信できないようです。