我正在尝试使用编译器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