2009-05-10 5 views
1

Wie ist der einfachste Weg, ein Programm mit einem Stück Java-Code aufzurufen? (Das Programm, das ich ausführen möchte, ist aiSee und es kann von der Kommandozeile oder von Windows GUI aus ausgeführt werden, und ich bin auf Vista, aber der Code wird auch auf Linux-Systemen ausgeführt).Ausführen eines Programms in Java-Code

Antwort

7

Schauen Sie sich die Klassen Process und Runtime an. Denken Sie daran, dass das, was Sie zu erreichen versuchen, wahrscheinlich nicht plattformunabhängig ist. Hier

ist ein kleines Stück Code, das hilfreich sein könnte:

public class YourClass 
{ 
    public static void main(String args[]) 
     throws Exception 
    { 
     Runtime rt = Runtime.getRuntime(); 
     Process proc = rt.exec("name_of_your_application.exe"); 
     int exitVal = proc.exitValue(); 
     System.out.println("Process exitValue: " + exitVal); 
    } 
} 

One Frage in S.O. ähnliche Probleme diskutieren. Another eins. And ein anderer.

+0

Ok, vielen Dank. Ja, du hast recht: Es kann unmöglich plattformunabhängig sein (da die beiden Systeme das Programm wahrscheinlich an einem anderen Ort haben werden). Woran dachte ich dabei? –

0

Die Schwierigkeit, der Sie begegnen werden, ist, wie Sie die Anwendung den Pfad kennen lernen. Möglicherweise möchten Sie eine XML oder Config-Datei verwenden, aber wenn Sie diesen Link verwenden, sollte es erklären, wie eine Datei auszuführen: http://www.javacoffeebreak.com/faq/faq0030.html

+0

Ich werde wahrscheinlich einfach als Befehlszeile arg übergeben, wie Nathan vorgeschlagen hat. Es ist peinlich, aber es muss –

1

Sie können eine Laufzeitinstanz erhalten Runtime.getRuntime() verwenden und die exec Methode der Laufzeit aufrufen, mit der Befehl, um das Programm als Argument auszuführen.

Zum Beispiel:

Runtime runTime = Runtime.getRuntime();  
Process proc = rt.exec("iSee.exe"); 

Sie können auch die Ausgabe des Programms erfassen, indem Sie mit der Input aus dem Prozess zu bekommen.

+0

in Ordnung tun, danke; Obwohl die Ausgabe grafisch ist (aiSee zeigt Graphen aus GDL-Beschreibungen an), werde ich sie wahrscheinlich nicht weiter verarbeiten; aber es ist gut zu wissen, dass ich diese Option habe –

0

Sie können auch in Erwägung ziehen, Argumente in Ihr Programm einzugeben, um das Auffinden des gewünschten Programms zu erleichtern.

Dies kann mit Befehlszeilenargumenten, Eigenschaftendateien oder Systemeigenschaften geschehen.