1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import javax.swing.JTextArea;
public class Compilateur {
public String javacFile;
public String classpath = "bin";
public JTextArea console;
public Compilateur(String javacFile, String classpath, JTextArea console)
{
this.javacFile = javacFile;
this.classpath = classpath;
this.console = console;
}
public File compiler(File fichier)
{
// Recuperation du repertoire courant ou tourne l'application
String repertoireCourant = System.getProperty("user.dir");
File fichierCompile = null;
String cmd = this.javacFile+" -classpath "+repertoireCourant+"\\"+classpath+" \""+fichier.getAbsolutePath()+"\"";
String result = "" ;
boolean erreur = false;
try
{
result += "--------------------------------------------------\n";
result += "-- COMPILATION --\n";
result += "--------------------------------------------------\n";
result += "Commande : "+cmd+"\n";
// Lance la commande
Process process = Runtime.getRuntime().exec(cmd);
// Attend que le processus soit terminé
//process.waitFor();
// Lit les erreurs
BufferedReader is = new BufferedReader(new InputStreamReader(process.getErrorStream()));
String line;
while ((line = is.readLine()) != null)
{
erreur = true;
result += line+'\n';
}
if(!erreur)
{
String NomSansExtension = fichier.getName().substring(0, fichier.getName().lastIndexOf(".")) ;
fichierCompile = new File(fichier.getParent()+"\\"+NomSansExtension+".class");
result += "COMPILATION REUSSIE !\n" +
"Le fichier "+fichierCompile.getAbsolutePath()+" à été créé";
}
}
catch(Exception e)
{
result += "[ ERREUR ] COMMANDE INCONNUE : \n";
result += cmd + " " + e.toString()+'\n';
result += "Vérifiez la configuration du programme.\n";
}
//result += "\n--------------------------------------------------\n";
console.setText(console.getText()+result+'\n');
return fichierCompile;
}
} |
Partager