Compilazione di un insieme di file Java all'interno di una struttura di directory con la JSR 199 Compiler API
-
21-09-2019 - |
Domanda
Sto cercando di compilare molti file utilizzando l'API compilatore.
Dire che ho una struttura di directory
.../program +/org +/foo |+ Main.java +/bar + Tools.java
C'è un modo per scoprire tutti i file Java e farlo compilatore tutto senza ricorrere a recursing in tutte le directory e trovare tutti i file * .java?
EDIT: Quello che sto cercando di fare è compilare tutte le classi che ottengo in qualche albero di directory. Queste classi sono indipendenti l'uno dall'altro. Poi ho caricare le classi e creare un'istanza alcuni oggetti di queste classi e chiamare i metodi. Nessuna delle classi devono avere principale.
Soluzione
La classe javax.tools.JavaFileManager
ha un list()
metodo che dovrebbe fare il trucco:
Iterable<JavaFileObject> list(JavaFileManager.Location location,
String packageName,
Set<JavaFileObject.Kind> kinds,
boolean recurse)
throws IOException
Utilizzare il parametro recurse
per includere "sottopackage" e poi basta iterare il JavaFileObject
restituito.