3

我正在尝试使用 Compiler API 编译许多文件。

假设我有一个目录结构

.../program
   +/org
    +/foo
    |+ Main.java
    +/bar
     + Tools.java

有什么方法可以发现所有 Java 文件并使其编译所有内容,而无需递归到所有目录并查找所有 *.java 文件?

编辑:我想做的是编译我在某个目录树中得到的所有类。这些类是相互独立的。然后我加载类并实例化这些类的一些对象并调用方法。没有一个类需要有主。

4

1 回答 1

3

该类javax.tools.JavaFileManager有一个list()方法可以解决问题:

Iterable<JavaFileObject> list(JavaFileManager.Location location,
                              String packageName,
                              Set<JavaFileObject.Kind> kinds,
                              boolean recurse)
                              throws IOException

使用recurse参数包含“子包”,然后只遍历返回的JavaFileObject.

于 2009-10-16T16:46:37.600 回答