java外部コマンド実行方法
RuntimeクラスまたはProcessBuilderクラスを用いると実現できる。
※ProcessBuilderクラスは、JDK1.6以上
例1
Runtime runtime = Runtime.getRuntime();
Process process = runtime .exec("コマンド");
例2
ProcessBuilder processBuilder =new ProcessBuilder("コマンド");
Process process = processBuilder.start();
上記"コマンド"には実行ファイル。
たとえば、"コマンド" = "notepad.exe"
とすると、ノートパッドが開く
コマンドプロンプトなどのコマンドは直接実行できない。
"コマンド" = new String[]{ "cmd", "/c", "cd" }
などとして、cmdを実行し引数としてコマンドを指定する。
しかしこのままで何も表示されない。
出力を得るには、
InputStream in = null;
BufferedReader br = null;
in = process .getInputStream();
StringBuffer out = new StringBuffer();
br = new BufferedReader(new InputStreamReader(in));
String line;
while ( ( line = br.readLine()) != null) {
system.out.println(line);
}
br.close();
in.close();
とする。