我有以下Windows批处理文件(run.bat):
@echo off
echo hello batch file to sysout
Run Code Online (Sandbox Code Playgroud)
以下java代码,它运行批处理文件并将输出重定向到文件:
public static void main(String[] args) throws IOException {
System.out.println("Current java version is: " + System.getProperty("java.version"));
ProcessBuilder pb =
new ProcessBuilder("cmd.exe", "/c",
"run.bat"
,">>", "stdout.txt","2>>", "stderr.txt"
);
System.out.println("Command is: " + pb.command());
Process proc = pb.start();
InputStream in = proc.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
int exitValue = proc.exitValue();
System.out.println("Exit value: " + exitValue);
}
Run Code Online (Sandbox Code Playgroud)
在JDK上,包括JDK6u43,我得到以下输出:
Current …Run Code Online (Sandbox Code Playgroud)