我正在尝试使用Java进程构建器执行.bat文件,但它无法启动进程。请告诉我在这里做错了什么。当我将file.bat替换为./file.sh时,此代码在Linux环境中运行良好。
final ArrayList<String> command = new ArrayList<String>();
command.add(WORKING_DIR+File.separator+"file.bat");
final ProcessBuilder builder = new ProcessBuilder(command);
try {
builder.redirectErrorStream(true);
builder.start();
} catch (IOException e) {
logger.error("Could not start process." ,e);
}
WORKING_DIR
变量的值? - fmodosfile.bat
中使用了哪些命令? - Vishal Kexec
,使用ProcessBuilder
构建Process
。同时,将一个String arg
拆分成String[] args
以考虑包含空格的参数。 - Andrew ThompsonRuntime.getRuntime().exec(...)
是使用ProcessBuilder
实现的。如果你不相信,请检查你的JDK源代码压缩包。 - Luke Woodward