JSR 199コンパイラAPIを使用してディレクトリツリー内にJavaファイルのセットをコンパイルする

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

  •  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.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top