我正在尝试使用 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);
}
最佳答案
数组中的第一个元素必须是可执行文件。所以你必须调用 cmd.exe 才能调用你的批处理文件。
ProcessBuilder builder = new ProcessBuilder(Arrays.asList(new String[] {"cmd.exe", "/C", WORKING_DIR + File.separator + "file.bat"}));
关于java - 使用java processbuilder运行bat文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17120782/