Compilación de un conjunto de archivos de Java dentro de un árbol de directorios con la API JSR 199 Compilador
-
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.
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.