Runtime exec ausführung erst nach programmende???



  • hallo zusammen,

    ich habe ein problem. ich möchte ein programm per kommandozeile ausführen. dafür verwende ich:

    try {
        Runtime.getRuntime().exec("dvpiper -type DVB-S -frequency "+frequency+"000 -polar "+polarisation+" -lowosc 9750000 -highosc 10600000 -lnbswitch 11700000 -symbolrate "+symbolrate+" -command \"record(rid(1237),progid("+sid+"),buildpat,send(udp(localhost,1234)))\"");
    }
    catch( Exception e ){
        e.printStacktrace();
    }
    

    wenn ich die variablen mit werten belege und das programm (dvpiper.exe ist im path) selbst in der kommandozeile aufrufe, funktioniert das problemlos. wenn ich das aber so mache, wie hier, dann startet dvpiper solange nicht, bis java-applikation beendet ist und zwar genau dann in diesem moment. mach ich was falsch?

    ich nutze JDK 1.6.0_20 unter WinXP.

    vielen dank

    wayne



  • hat sich erledigt.

    mein aufruf muss nur so: "cmd.exe /c start dvpiper ..." ausgeführt werden, dann klappts.

    schade, daß es dadurch asynchron ausgeführt wird, mit also InputStream und OutputStream des Process-objekts nicht nützlich sind. geht in meinem fall aber auch ohne.

    viele grüße

    wayne


Anmelden zum Antworten