LoginSignup
0
0

More than 1 year has passed since last update.

Javaプログラムからwindowsバッチファイルを実行する

Posted at

実務でJavaプログラムからバッチファイルを実行する処理が実装されていたので備忘録として簡単なサンプルを残しておく。

今回はA5M2.exeを起動するバッチファイルをJavaから起動する処理を実装した。

なぜA5M2なのは特に理由はない。

実装する処理の流れは以下の通り。

①バッチファイルを起動するJavaプログラムを実行

②バッチファイルからA5M2.exeを起動

Javaプログラムの実装

Javaのソースは下記の通り

sample.java
public class Sample {

	public static void main(String[] args) {
		try {
			ProcessBuilder pb = new ProcessBuilder("C:\\Users\\User\\Desktop\\hello.bat");
			Process process = pb.start();

			int result = process.waitFor();
			System.out.println("戻り値:" + result);
		} catch(Exception e) {
			System.out.println(e.toString());
			System.out.println("プロセス起動失敗");
		}
	}
}

ProcessBuilderはプロセスの起動などに使用することができるクラスである。

インスタンスを宣言するときに引数で実行したいコマンドを文字列でセットする。

インスタンス生成後にstartメソッドでコマンドを実行する。

戻り値が返ってくるのでProcessクラスの変数に代入する。

process.waitForメソッドは起動したプロセスが終了するまでの間、現在のスレッドを待機させることができるメソッド。

戻り値としてプロセスの終了コードが返ってくる。
0の場合は正常に終了している。

バッチファイルの実装

A5M2を起動するだけなので、startでディレクトリを指定するだけで起動できる。

sample.bat
start "" C:\任意のディレクトリ\A5M2.exe

実行してみる

実際にJavaプログラムを実行してみる。

image.png

実行後、A5M2を起動することに成功。

eclipseのコンソールでも終了コード0が返ってきていることがわかる。

image.png

今回は非常に簡単だが、うまく活用すればいろんなことを効率化できそうなのでいろいろやってみると良いかもしれない。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0