Compilar um conjunto de arquivos Java dentro de uma árvore de diretório com a API do compilador JSR 199

StackOverflow https://stackoverflow.com/questions/1576530

  •  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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top