2010-02-14 2 views
3
// this works 
if ("Show".equals (obj)) 
{ 
    try { 
    String command= "/usr/bin/xterm -e javac panel_1.java"; 
    Runtime rt = Runtime.getRuntime();  
    Process pr = rt.exec(command); 

    BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));  
    String line = null; 
    while ((line = in.readLine()) != null) { 
     System.out.println(line); 
    } 
    } catch (IOException e) { 
    e.printStackTrace(); 
    } 
} 

Cela ouvre une fenêtre xterm, appelle javac sur panel_1.java, il compile si panel_1.java est un fichier valide. alors la fenêtre de xterm se ferme. Fin Je veux prendre les avertissements, etc., de la compilation et les mettre dans une liste ou un textArea. Des idées ???comment puis-je rediriger la sortie de javac retour dans le programme appelant

+5

Pourquoi lancez-vous xterm? Vous devriez être capable d'utiliser le fichier rt.exec pour lancer le compilateur Java lui-même, ce qui vous donnera le bon flux d'entrée/sortie. – Kylar

Répondre

5

Java 6 a JavaCompiler du package javax.tools qui fournit une API au compilateur sans avoir à exécuter un processus externe. (lire le javadoc que j'ai lié!)

Here est aussi un petit tutoriel sur le sujet.

Questions connexes