Java .classファイルを読む
-
24-10-2019 - |
質問
コンパイルされたコードを使用してコードを生成するツールを書きたい .class
入力としてファイル。具体的には、このクラスファイルから読みたいです。
- 注釈付きの方法
- メソッドパラメーター、注釈付き
入力クラスファイルは、ツールのClassPathにないいくつかのタイプを参照する可能性があります。これは大丈夫です、私は彼らと一緒に何もする必要はありません、ただ資格のあるタイプ名を文字列として読む必要があります。注釈からいくつかの情報を取得する必要がありますが、それらはツールのクラスパスにあります。
この目的のために使用できるライブラリはありますか? APIが反射APIに少し似ている場合はいいことですが、そうである必要はありません。
解決
ASM http://asm.ow2.org/ クラスを読み込むことなく、ファイル/入力ストリームからクラスを読むことができます。実行時にロードされていない注釈を見ることができます。また、クラスバイトコード/アノテーション/メソッドなどを変更するためにも使用できます。
他のヒント
Javapツール JDKに含まれることは、おそらくあなたが望んでいることをすでにしています。
2つのことを見る必要があります Reflection API
と Decompiler
Springクラススキャンを使用できると思います。
ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(true);
String basePackage = "org/springframework/samples/petclinic";
Set<BeanDefinition> components = provider.findCandidateComponents(basePackage);
for (BeanDefinition component : components) {
System.out.printf("Component: %s\n", component.getBeanClassName());
}
詳細については、春を調べてください ドキュメント
私は使用しています ASM すべての方法を見つけるため。
.classファイルの生成にアクセスできる場合は、 反射API 助けることができるはずです。
所属していません StackOverflow