Java –如何运行Windows bat文件
程序员文章站
2022-03-02 22:40:32
...
在Java中,我们可以使用ProcessBuilder
运行Windows批处理文件,如下所示:
ProcessBuilder processBuilder =
new ProcessBuilder("C:\\Users\\mkyong\\hello.bat");
//or
ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command("cmd", "/c", "hello.bat");
File dir = new File("C:\\Users\\mkyong\\");
processBuilder.directory(dir);
或者,像这样的Runtime.getRuntime().exec
:
Process process = Runtime.getRuntime().exec(
"cmd /c hello.bat", null, new File("C:\\Users\\mkyong\\"));
1. Java示例
1.1一个简单的蝙蝠文件。
C:\\Users\\mkyong\\hello.bat
@echo off
echo Hello World
1.2 Java示例读取上面的bat文件并显示输出。
JavaRunBatFile.java
package com.mkyong.concurrency;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
public class JavaRunBatFile {
public static void main(String[] args) {
ProcessBuilder processBuilder = new ProcessBuilder("C:\\Users\\mkyong\\hello.bat");
//Process process = Runtime.getRuntime().exec(
// "cmd /c hello.bat", null, new File("C:\\Users\\mkyong\\"));
try {
Process process = processBuilder.start();
StringBuilder output = new StringBuilder();
BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
output.append(line + "\n");
}
int exitVal = process.waitFor();
if (exitVal == 0) {
System.out.println(output);
System.exit(0);
} else {
//abnormal...
}
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
输出量
Hello World
参考文献
From: https://mkyong.com/java/java-how-to-run-windows-bat-file/