2009-10-16 5 views
3

Je tente de compiler de nombreux fichiers à l'aide de l'API du compilateur.Compilation d'un ensemble de fichiers Java dans une arborescence de répertoires avec l'API du compilateur JSR 199

Dire que j'ai une structure de répertoire

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

Est-il possible de découvrir tous les fichiers Java et le rendre compilateur tout sans avoir recours à récursion dans tous les répertoires et de trouver tous les fichiers *. fichiers java?

EDIT: Ce que j'essaie de faire est de compiler toutes les classes que je reçois dans une arborescence de répertoires. Ces classes sont indépendantes les unes des autres. Ensuite, je charge les classes et instancie certains objets de ces classes et méthodes d'appel. Aucune des classes ne doit avoir de main.

+0

C'est marrant que personne ne soit capable (prêt?) De vous aider avec un problème aussi basique - enlevez les IDEs brillants et tout le monde sera foutu! : D – sfussenegger

+0

BCEL ou ASM pourrait aider. http://chaoticjava.com/posts/jakartas-bcel-vs-objectwebs-asm/ –

+1

L'OP parle d'utiliser l'API Java Compiler aka JSR 199, pas javac. Ce n'est pas si basique. –

Répondre

3

La classe javax.tools.JavaFileManager a une méthode list() qui devrait faire l'affaire:

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

Utilisez le paramètre recurse pour inclure « et » sous-paquets juste au-dessus de la itérer retourné JavaFileObject.

Questions connexes