任意の.classファイルからBCEL JavaClassオブジェクトを作成します
質問
BCELで遊んでいます。バイトコードの生成には使用していませんが、代わりに、既存のコンパイル済みクラスの構造を検査しようとしています。
ハードドライブ上の任意の場所にある任意の.classファイルをポイントし、それに基づいたJavaClass オブジェクト。理想的には、クラスパスに特定のクラスを追加する必要を避けたいです。
解決
簡単な方法は、ファイル名でClassParserを作成し、parse()を呼び出すことです。または、SyntheticRepositoryを使用して、クラスパス(クラスパスではない、IYSWIM)を指定することもできます。
他のヒント
既存の.classは、java langクラスオブジェクトにクラスをロードできます。その後、BCEL中間Javaクラス構造に変換できます。次のコードが役立つ場合があります。-
Class<?> javaClass1 = null;
javaClass1 = ucl.loadClass("com.sample.Customer");
org.apache.bcel.classfile.JavaClass javaClazz1=org.apache.bcel.Repository.lookupClass(javaClass1);
new ClassParser(classfilebytearrayhere).parse()
所属していません StackOverflow