2010-10-03 6 views
0

J'utilise Janino pour compiler des fichiers java à l'exécution pour les utiliser dans un programme. J'utilise netbeans et je peux seulement le compiler à l'exécution quand je mets le répertoire dans le dossier src. Si j'essaie de le compiler en utilisant des chemins relatifs Cela ne marchera pas.Impossible d'obtenir le compilateur Janino pour compiler des fichiers dans le même répertoire que jar

que je suis l'exemple à http://docs.codehaus.org/display/JANINO/Advanced#Advanced-compiler

Voici ce qui fonctionne quand je mets les fichiers à compiler à l'exécution dans un dossier scripts appelés dans le répertoire src:

 String engineClass = "DefaultEngine"; //name of engine class 
     String guiClass = "DefaultGUI"; // name of gui class 
     ClassLoader cl = new JavaSourceClassLoader(
       this.getClass().getClassLoader(), 
       new File[]{new File("scripts")}, 
       (String) null, 
       DebuggingInformation.NONE); 
     AbstractEngine engine = (AbstractEngine) cl.loadClass(engineClass).newInstance(); 
     AbstractGUI gui = (AbstractGUI) cl.loadClass(guiClass).newInstance(); 

Il ne travailler si je mets le dossier scripts dans le même répertoire que le jar. Je ne peux le faire fonctionner que lorsque je lance le projet depuis l'intérieur de l'EDI avec le dossier scripts dans le répertoire src.

Quand j'essayez d'exécuter le projet en utilisant le dossier scripts dans le même dossier que le fichier jar lui donne un ClassNotFoundException sur la AbstractEngine engine = (AbstractEngine) cl.loadClass(engineClass).newInstance(); ligne

Répondre

0

I figured it out. Je devais mettre new File(System.getProperty("user.dir")+"/scripts") pour le chemin

Questions connexes