1. ホーム
  2. java

[解決済み] Javaアプリケーションからバッチファイルを実行するにはどうしたらいいですか?

2022-05-14 05:40:29

質問

Javaアプリケーションで、"を呼び出すバッチファイルを実行したい。 scons -Q implicit-deps-changed build\file_load_type export\file_load_type "を実行します。

バッチファイルを実行させることすらできないようです。アイデアも尽きています。

Javaではこんな感じです。

Runtime.
   getRuntime().
   exec("build.bat", null, new File("."));

以前は、実行したい Python Sconscript ファイルがありましたが、それがうまくいかなかったので、バッチファイル経由でスクリプトを呼び出すことにしましたが、その方法はまだ成功していません。

どのように解決するのですか。

バッチファイルは実行可能ファイルではありません。 実行するためのアプリケーション(cmdなど)が必要です。

UNIXでは、スクリプトファイルの先頭にshebang(#!)をつけて、実行するプログラムを指定します。 Windowsでのダブルクリックは、Windowsエクスプローラで行います。 CreateProcess はそれについて何も知りません。

Runtime.
   getRuntime().
   exec("cmd /c start \"\" build.bat");

start \"\" コマンドを使うと、空白のタイトルで別のコマンドウィンドウが開かれ、バッチファイルからの出力がそこに表示されます。 cmd /c build.bat" だけでも動作するはずで、その場合、必要に応じて出力を Java のサブプロセスから読み込むことができます。