Compilación de un conjunto de archivos de Java dentro de un árbol de directorios con la API JSR 199 Compilador

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

  •  21-09-2019
  •  | 
  •  

Pregunta

Estoy tratando de recopilar muchos archivos a través de la API del compilador.

decir que tengo una estructura de directorios

.../program
   +/org
    +/foo
    |+ Main.java
    +/bar
     + Tools.java

¿Hay alguna manera de descubrir todos los archivos Java y hacerlo compilador de todo sin recurrir a la manera recursiva en todos los directorios y encontrar todos los archivos * .java?

EDIT: Lo que estoy tratando de hacer es recopilar todas las clases que me meto en un árbol de directorios. Estas clases son independientes entre sí. Entonces me carga las clases y crear instancias de algunos objetos de estas clases y los métodos de llamada. Ninguna de las clases necesitan tener principal.

¿Fue útil?

Solución

La clase javax.tools.JavaFileManager tiene un list() método que debe hacer el truco:

Iterable<JavaFileObject> list(JavaFileManager.Location location,
                              String packageName,
                              Set<JavaFileObject.Kind> kinds,
                              boolean recurse)
                              throws IOException

Utilice el parámetro recurse para incluir "sub-paquetes" y luego simplemente iterar sobre la JavaFileObject devuelto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top