Скомпилирование набора файлов Java внутри дерева каталогов с API компилятора JSR 199

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