Compilar um conjunto de arquivos Java dentro de uma árvore de diretório com a API do compilador JSR 199
-
21-09-2019 - |
Pergunta
Estou tentando compilar muitos arquivos usando a API do compilador.
Diga que tenho uma estrutura de diretório
.../program +/org +/foo |+ Main.java +/bar + Tools.java
Existe alguma maneira de descobrir todos os arquivos Java e torná -lo tudo sem recorrer a se destacar em todos os diretórios e encontrar todos os arquivos *.java?
EDIT: O que estou tentando fazer é compilar todas as classes que recebo em alguma árvore de diretório. Essas classes são independentes uma da outra. Em seguida, carrego as classes e instanciei alguns objetos dessas classes e chamo métodos. Nenhuma das classes precisa ter principal.
Solução
o javax.tools.JavaFileManager
A classe tem um list()
Método que deve fazer o truque:
Iterable<JavaFileObject> list(JavaFileManager.Location location,
String packageName,
Set<JavaFileObject.Kind> kinds,
boolean recurse)
throws IOException
Use o recurse
parâmetro para incluir "subpackagens" e depois itera sobre o retorno JavaFileObject
.