Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus?
In meine Java-Anwendung möchte ich ausführen einer batch-Datei aufruft "scons -Q implicit-deps-changed build\file_load_type export\file_load_type
"
Es scheint, dass ich kann nicht einmal meine batch-Datei ausführen. Ich bin aus Ideen heraus.
Dies ist, was ich in Java:
Runtime.
getRuntime().
exec("build.bat", null, new File("."));
Zuvor hatte ich ein Python-Sconscript-Datei, die ich ausführen wollte, aber da das nicht funktioniert habe ich beschlossen, ich würde rufen Sie das Skript über eine batch-Datei, aber die Methode nicht erfolgreich war, als der noch.
InformationsquelleAutor der Frage Amara | 2009-03-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Batch-Dateien sind nicht ausführbar. Sie benötigen eine Anwendung, um Sie auszuführen (d.h. cmd).
Unter UNIX, die script-Datei hat die shebang (#!) am Anfang der Datei angeben, die das Programm ausführt. Doppelklick im Windows erfolgt durch den Windows-Explorer.
CreateProcess
weiß nichts darüber.Hinweis: Mit der
start \"\"
Befehl, einen separaten Befehl Fenster wird geöffnet mit einem leeren Titel und eine Ausgabe der batch-Datei wird dort angezeigt. Es sollte auch nur mit " cmd /c bauen.bat", in dem Fall die Ausgabe gelesen werden kann, der von der sub-Prozess in Java, wenn gewünscht.InformationsquelleAutor der Antwort Paulo Guedes
Manchmal die Ausführung des Threads Prozess-Zeit höher ist als JVM-thread wartet-Prozess Zeit, die es verwenden, um zu geschehen, wenn der Prozess Sie sind Aufruf dauert einige Zeit, um verarbeitet werden, verwenden Sie die waitFor () - Befehl wie folgt:
Diese Weise die JVM anhalten wird, bis der Prozess Sie sind Aufruf erfolgt, bevor es weiter mit dem thread execution stack.
InformationsquelleAutor der Antwort Juan Carlos Alpízar
InformationsquelleAutor der Antwort Isha
Ausführen, batch-Dateien mit java-wenn du redest...
Dies sollte es tun.
InformationsquelleAutor der Antwort Abbia
ProcessBuilder ist die Java 5/6 Weg zu laufen externe Prozesse.
InformationsquelleAutor der Antwort basszero
Die ausführbare Datei zum ausführen von batch-Skripten ist
cmd.exe
verwendet/c
- flag geben Sie den Namen der batch-Datei ausführen:Theoretisch sollten Sie auch in der Lage sein zu laufen Scons in dieser Weise, obwohl ich noch nicht getestet:
EDIT: Amara, Sie sagen, dass das nicht funktioniert. Die Fehler, die Sie aufgeführt ist die Fehlermeldung, die Sie erhalten würde, wenn die Ausführung von Java aus ein Cygwin-terminal auf einem Windows-Rechner; ist das, was du tust? Das problem ist, dass Windows und Cygwin haben unterschiedliche Pfade, so dass die Windows-version von Java nicht finden, die scons ausführbare Datei auf Ihrem Cygwin-Pfad. Ich kann erklären, wenn diese entpuppt sich als Ihr problem.
InformationsquelleAutor der Antwort Eli Courtwright
getestet mit jdk1.5 und jdk1.6
Dieser Arbeit war gut für mich, hoffe, es hilft anderen auch.
dieses bekommen ich habe gekämpft, mehr Tage. 🙁
InformationsquelleAutor der Antwort Suren
Ich hatte das gleiche Problem. Aber manchmal CMD ausführen konnte meine Dateien.
Das ist, warum ich eine temp.bat auf meinem desktop, neben diesen temp.bat laufen meine Datei, danach wird die temp-Datei gelöscht.
Ich weiß, dass dies ein größer-code, jedoch hat bei mir in 100% als auch Laufzeit.getRuntime().exec() ist fehlgeschlagen.
InformationsquelleAutor der Antwort Ben Jost
Folgendes ist in Ordnung:
InformationsquelleAutor der Antwort bharath
Dieser code ausgeführt wird, zwei Befehle.Fledermaus, die es in den Pfad C:/folders/folder.
InformationsquelleAutor der Antwort رامي عبد الله
Erweitern @Isha ist anwser können Sie einfach die folgenden Informationen, um die zurückgegebenen (post-facto nicht in Echtzeit) des Skripts, die ausgeführt wurde:
InformationsquelleAutor der Antwort NoodleOfDeath