我正在尝试使用 Compiler API 编译许多文件。
假设我有一个目录结构
.../program +/org +/foo |+ Main.java +/bar + Tools.java
有什么方法可以发现所有 Java 文件并使其编译所有内容,而无需递归到所有目录并查找所有 *.java 文件?
编辑:我想做的是编译我在某个目录树中得到的所有类。这些类是相互独立的。然后我加载类并实例化这些类的一些对象并调用方法。没有一个类需要有主。
我正在尝试使用 Compiler 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
.