JSR 199コンパイラAPIを使用してディレクトリツリー内にJavaファイルのセットをコンパイルする
-
21-09-2019 - |
質問
コンパイラAPIを使用して多くのファイルをコンパイルしようとしています。
ディレクトリ構造があるとします
.../program +/org +/foo |+ Main.java +/bar + Tools.java
すべてのJavaファイルを発見し、すべてのディレクトリに再び繰り返してすべての *.javaファイルを見つけることなく、すべてをコンパイラにする方法はありますか?
編集:私がやろうとしているのは、いくつかのディレクトリツリーで入手したすべてのクラスをコンパイルすることです。これらのクラスは互いに独立しています。次に、クラスをロードし、これらのクラスのオブジェクトをいくつかインスタンス化し、メソッドを呼び出します。どのクラスにもメインが必要ではありません。
解決
javax.tools.JavaFileManager
クラスには list()
トリックを行うべき方法:
Iterable<JavaFileObject> list(JavaFileManager.Location location,
String packageName,
Set<JavaFileObject.Kind> kinds,
boolean recurse)
throws IOException
使用 recurse
「サブパッケージ」を含めるパラメーター、そして返されたものを繰り返すだけです JavaFileObject
.
所属していません StackOverflow