java - 使用java processbuilder运行bat文件

标签 java batch-file processbuilder

我正在尝试使用 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/

相关文章:

Java 无效命令行参数异常

java - 从同一个批处理文件运行多个批处理文件时出现问题

c# - 打开命令行并在不关闭的情况下读取输出

java - 如何使用与 tomcat 不同的用户在 tomcat 中运行我的 Web 应用程序?

java - ProcessBuilder 在同一项目中启动主要方法

Linux 终端中的 Java 字符串执行

java - Cracking the Coding Interview中5.1的解法错了吗?

java - 三重 for 循环的时间复杂度

java - 拍照并保存路径

windows - 如何在 Windows 中使用带路径的 "start"和带空格的命令创建批处理文件