Ausführen von Batch-Dateien in Java Applications
in Java, um eine Batch-Datei auszuführen, in der Aktionen wie "Scons -q implizit-deps-changed-changed" initiiert werden Build \ File_load_type export \ file_load_type "kann eine Herausforderung erscheinen.
Die Herausforderung von Batch -Dateien
Batch -Dateien sind nicht von Natur aus ausführbar und fordern eine Anwendung, um sie auszuführen, wie sie ausführen, wie CMD unter Windows. Im Gegensatz zu UNIX -Skriptdateien, mit denen Shebang (#!) Verwendet wird, um das ausführende Programm anzugeben, fehlen Stapeldateien diesen Mechanismus. Versuch, die Batch -Datei mit "runnen.getruntime () auszuführen. Exec (" Build.bat ", Null, neue Datei (")) "würde nicht erfolgreich sein, weil sie angenommen wurde, dass die direkte Ausführung möglich ist.
Die Lösung: Verwendung von CMD
Der Schlüssel zur Überwindung dieser Herausforderung besteht darin, den Befehl cmd zu verwenden, um die Batch -Datei auszuführen. Hier ist der korrigierte Java -Code:
runtime.getruntime (). Exec ("cmd /c starten \" \ "build.bat"); "cmd /c starten \". \ "" Zum Beginn des Befehls rufen Sie ein Befehlsfenster auf, in dem die Stapeldatei ausgeführt wird. Das Argument von Start \ "\" erstellt ein separates Befehlsfenster mit einem leeren Titel, um jede Ausgabe anzuzeigen. Alternativ lässt "CMD /C Build.bat" ohne Start das separate Befehlsfenster aus und ermöglicht die Ausgabe in Java.
Die Implementierung dieser Änderung sollte es Ihrer Java -Anwendung ermöglichen, die Ausführung erfolgreich auszulösen von Batch -Dateien und führen Sie die gewünschten Aktionen aus.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3