Skip to content

Compiler du source Java dans un programme Java

Avec Java 6, il est possible de compiler un source Java directement depuis vos programmes.

Voici la marche à suivre :

Créez des instances de JavaCompiler et StandardJavaFileManager.

JavaCompiler jc = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager sjfm = jc.getStandardFileManager(null, null, null);

Ensuite, ajoutez une tâche de compilation au compilateur Java. La méthode getJavaFileObjects accepte plusieurs paramètres qui permettent de soumettre plusieurs compilations simultanément.

File javaCode = new File(« c:/java/fr/toto/CompilerTest.java »);
String[] opts = new String[]{« -d », « c:/classes »};
Iterable codeObject = sjfm.getJavaFileObjects(javaCode);
jc.getTask(null, sjfm, null, Arrays.asList(opts), null, codeObject).call();
sjfm.close();

S’il n’y a pas d’erreurs, la classe compilée est générée dans c:/classes.

Après cette compilation, cette classe est prête à être chargée dans le programme.

File classesMap = new File(« c:/classes »);
URL[] urls = new URL[]{classesMap.toURL()};
URLClassLoader ucl = new URLClassLoader(urls, cl);
Class clazz = ucl.loadClass(« fr.toto.CompilerTest »);

Et ça roule !  Magique !!

[ Compile Java code in a Java program ]

Published inProgrammation
Loading Facebook Comments ...

Be First to Comment

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.