Comment définir le classpath lorsque j'utilise javax.outils.JavaCompiler compiler le code source?
J'utilise la classe javax.tools.JavaCompiler
(jdk6) pour compiler un fichier source, mais le fichier source dépend d'un fichier jar. Comment définir le classpath de l' javax.tools.JavaCompiler
?
Vous devez vous connecter pour publier un commentaire.
La javax.outils.JavaCompiler#getTask() méthode prend un
options
paramètre qui permet de définir les options du compilateur. La suite message décrit un moyen facile de les définir afin d'accéder au programme appelant le classpath de l':Tous vous aurez besoin est d'obtenir le bon chemin de classe définie lors de l'exécution du programme appelant.
classpath
option deJavaCompiler
ne pas "comprendre" les caractères génériques. De sorte que chaquejar
vous devez ajouter directement dans cette chaîne.Le même problème m'est apparu récemment, j'ai enfin trouvé deux solutions de contournement. Vous pouvez définir le chemin de classe, soit par invoquer StandardJavaFileManager.setLocation(StandardLocation.CLASS_PATH, "YOUR_CLASS_PATH") ou le Compilateur.getTask(ARG_0, ARG_1, ARG_2, CLASS_PATH_OPTIONS, tout comme la première réponse posté ici dit.
StandardJavaFileManager.setLocation(StandardLocation.CLASS_PATH, Arrays.asList(new File(classpath)));