Bonjour,
J'utilise Eclipse et je n'ai aucun problème quand il faut ajouter un jar, .. dans le classpath. Mais j'aimerai le faire dynamiquement dans le code. En fait j'ai un projet dans lequel je génère un fichier java, puis je compile dans le souci de l'utiliser (Class c = Class.forName(MaClasse))
- je crée mon fichier java sans problème
- je compile avec :
Après compilation, le .class est bien généré et il me faut donc mettre le chemin "chemin" dans le classpath avant d'utiliser ma classe. Je le fais comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 try { // chemin = chemin d'accès à ma classe générée Process proc = Runtime.getRuntime().exec("javac -cp \""+System.getProperty("java.class.path")+"\" "+chemin+"\\MaClasse.java"); } catch(IOException ex) { System.out.println("Imposible d'executer la commande"); }
Mon classpath final s'affiche bien incluant le nouveau chemin, mais quand je fais un forName() sur cette classe générée, l'exception suivante survient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 String cp = System.getProperty("java.class.path"); System.setProperty("java.class.path", cp+";"+chemin); String cp2 = System.getProperty("java.class.path"); System.out.println("Claspath final = "+cp2);
Pourtant, quand j'ajoute ce chemin au classpath explicitement dans eclipse, cela fonctionne bien.Exception in thread "main" java.lang.ClassNotFoundException: BridgeServerImpl
at java.net.URLClassLoader$1.run(Unknown Source)
je ne sais ce qui se passe.
Merci
Partager