任意の.classファイルからBCEL JavaClassオブジェクトを作成します

StackOverflow https://stackoverflow.com/questions/164343

  •  03-07-2019
  •  | 
  •  

質問

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()
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top