Portal > Foren > Java > Allgemeine Java-Programmierung > Externes Programm steuern
Antwort
 
LinkBack Themen-Optionen Thema durchsuchen
Alt 02.07.2009, 16:17 Nach oben    #1
Neuer Benutzer
 
Registriert seit: 02.07.2009
Beiträge: 2
Standard Externes Programm steuern

Hallo,
hab folgendes Problem: unter Java muss ein Programm gestartet werden, das sich nur über bash Shell bedienen lässt. Danach muss ich ein paar Befehele, die das Programm steuren, aufrufen. Z.B. sollte folgende Codestück völlig automatisch ablaufen:

$ poly
> fun f () = print "Hello World\n";
> PolyML.export("hello", f);
> ^D
$ cc -o hello hello.o -lpolymain -lpolyml
$ ./hello

Hab mir überlegt, dass das am besten geht, wenn ich die Befehlle unter Java an bash übergebe. Nun, das Programm selbs (poly) zu starten ist kein Problem, aber wie übergebe ich weitere Befehle? (Zb fun f () = print "Hello World\n"; )
nemo86 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.07.2009, 07:24 Nach oben    #2
fka Gottzilla
 
Benutzerbild von The_S
 
Registriert seit: 02.02.2005
Ort: Würzburg
Beiträge: 753
Standard

Du startest das Programm über Runtime.getRuntime().exec(). Der Rückgabewert dieser Methode ist ein Process. Von diesem kannst du dir den Input und OutputStream holen. So kannst du weitere "Befehle" an das Programm senden.
The_S ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.07.2009, 09:33 Nach oben    #3
Neuer Benutzer
 
Registriert seit: 02.07.2009
Beiträge: 2
Standard

Danke, problem gelöst.

/**
* Test main method.
*
* @param args ignored
* @throws IOException
* @throws InterruptedException
*/
public static void main(String[] args)
throws IOException, InterruptedException {
class StreamPipe implements Runnable {

final InputStream input;
final PrintStream output;

StreamPipe(InputStream input, PrintStream output) {
this.input = input;
this.output = output;
}

public void run() {
int b;
try {
while ((b = input.read()) != -1) {
output.write(b);
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}

final ProcessBuilder pb = new ProcessBuilder("poly");
final Process process = pb.start();
new Thread(new StreamPipe(process.getInputStream(), System.out)).start();
new Thread(new StreamPipe(process.getErrorStream(), System.err)).start();

final PrintStream stdin = new PrintStream(process.getOutputStream());
stdin.println("fun f () = print \"Hello World\\n\";");
stdin.println("...");
stdin.flush();
process.waitFor();
}
nemo86 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.07.2009, 11:18 Nach oben    #4
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 3.198
Standard

@nemo86:
2 Dinge:
  1. crosspost sind absolut ungern gesehen!!!
  2. java-tag
    Um Java-Code farbig darzustellen kannst du einfach den [highlight]-tag nutzen:
    [highlight=java]
    // dein Code
    [/highlight]
    So sieht der Code dafür aus.
    Dies erleichtert das Lesen für andere enorm! Daher bitten wir dich in Zukunft auf die Verwendung zu achten. Danke.
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[C] "Kleines" Problem bei einem einfachen Programm Plankton Sonstige Programmiersprachen 5 28.12.2006 21:15
Jar Programm nutzen Jepse Desktop-Applikationen und Grafik 11 02.12.2005 17:55
Einfaches Programm - nur wie ?! magicforum Allgemeine Java-Programmierung 1 02.01.2005 17:49
Konsolenbefehl unter Linux in Programm einbauen Nicole66 Allgemeine Java-Programmierung 4 03.12.2004 10:07
fremdes Programm aus Java aufrufen miri Allgemeine Java-Programmierung 1 19.11.2004 18:49


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:15 Uhr.


Powered by vBulletin® Version 3.8.4 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.0

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