Java Programm aus Java Programm aufrufen

devilmc

Mitglied
Hallo,

ich bin grade dabei ein Case-Tool für eine Lehrveranstalltung zuprogrammieren.
Bestandteile dieses Programms sind java_cup und jlex.
Im Standardbetrieb mit CUP und LEX wird folgendes gemacht.
1. Scanner und Parser Dateien werden bearbeitet
2. CUP und LEX werden augerufen um aus den Scanner und Parserdateien, java klassen zu erstellen, dabei werden Ausgaben gemacht ob Konflikte in der Gramatik(Parser ) oder ob fehler im Scanner sind. Sollte alles richtig seien wird mit Schritt 3 fortgefahren
3. das Hauptprogramm wird über die DOS-Konsole mit Testdateien aufgerufen
4. Programm gibt nun auf der Konsole aus ob die Testdatei korrect ist oder nicht

Ich will nun über das CaseTool die generierung mit CUP und LEX realisieren und dann auch eine Testsuite zur Verfügung stellen in der man die Testdateien auswählt und das Hauptprogramm aus Schritt 3 startet.
Dabei sollen die Ausgaben aus Schritt 2 und 4 in der CaseTool eigenen Console ausgegeben werden.

PROBLEM:
Wie rufe ich die Java Programme ( CUP, LEX und das Hauptprogramm ) aus meine Javaprogramm so auf das ich deren Ausgaben abfangen kann und in meine Console kopiere...

Ich hoffe mir kann jemand helfen
grüße devilmc

PS: Wie ich ein Javaprogramm aufrufe ohne irgendwas abzufragen weiß ich... ;)
 
Hi devilmc!

Das kannst du das über einen ProcessBuilder lösen:

Java:
    ProcessBuilder builder = new ProcessBuilder( "cmd", "/c", "dir" ); 
    builder.directory( new File("c:/") ); 
    Process p = builder.start(); 
 
    Scanner s = new Scanner( p.getInputStream() ).useDelimiter( "\\Z" ); 
    System.out.println( s.next() );



Gruß, Manuel
 
Ich danke dir, ich werde es bei gelegenheit, sprich wenn die GUI fertig ist, testen.
Vielen dank erstmal, wenn noch Probleme sind werd ich mich dann nochmal melden.
Gruß devilmc
 
Zurück