Veröffentlicht 27. Mai 200322 j Ich rufe mir mit Runtime.getRuntime.exec(Command) ein Programm auf. Dabei bleibt mein ganzes JAVAProgramm stehen (Es wird noch die Methode waitFor() des Prozesses aufgerufen) (noch nicht einmal die Animation des Buttons läuft weiter). Wenn ich waitFor() weglasse, läuft mein Programm weiter. Aber das gestartete Programm macht nichts (Beobachtung im Taskmanager -> Prozess des Programms erzeugt, bleibt aber inaktiv). Sobald ich aber mein JAVAProgramm beende, legt das externe Programm los. Woran kann das denn liegen? Anmerkung: beim externen Programm handelt es sich um eine Konsolenanwendung, der alle notwendigen Parameter übergeben werden.
27. Mai 200322 j Hast du mal versucht die ausführung des Programms in einen eigenen Thread zu packen? Das sollte verhindern das der Rest des aufrufenden Programm einschläft.
27. Mai 200322 j Moin, Moin! Bei Windows kannst du start vor den Programmaufruf schreiben, dann rennt das von alleine. Bei Unix/Linux gibt es was ähnliches,& oder so, um Programme im Hintergrund zu starten. Gruß Jaraz
27. Mai 200322 j Autor Was genau macht denn "start"? Wenn ich mein Programm wiefolgt ändere kann ich keinen Prozess erzeugen: rt = Runtime.getRuntime(); p = rt.exec("start "+ commandIncluParams); [/PHP] Wenn ichs über cmd mache, dann klappts: [PHP] rt = Runtime.getRuntime(); p = rt.exec("cmd /c start "+ commandIncluParams); Hierbei öffnet sich allerdings ein Konsolenfenster, was ich nach Möglichkeit aber vermeiden wollte.
27. Mai 200322 j Original geschrieben von E-T Was genau macht denn "start"? Es startet das Kommando direkt und wartet nicht auf das beenden. Original geschrieben von E-T Wenn ich mein Programm wiefolgt ändere kann ich keinen Prozess erzeugen: Du willst also mit dem Prozess noch weiterarbeiten? Dann schau dir mal folgendes Kapitel von: www.javabuch.de an. 16.4.2 Interaktion mit dem externen Programm Gruß Jaraz
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.