Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java无法执行进程(Windows)_Java_Process_Execution_Processbuilder - Fatal编程技术网

Java无法执行进程(Windows)

Java无法执行进程(Windows),java,process,execution,processbuilder,Java,Process,Execution,Processbuilder,我需要使用一些参数运行本机windows可执行文件: ProcessBuilder pb = new ProcessBuilder( programFolder + SUB_PATH, params); pb.redirectErrorStream(true); try { System.out.println("running..."); Process p = pb.start(); try (BufferedReader re

我需要使用一些参数运行本机windows可执行文件:

ProcessBuilder pb = new ProcessBuilder(
        programFolder + SUB_PATH,
        params);

pb.redirectErrorStream(true);

try {
    System.out.println("running...");

    Process p = pb.start();

    try (BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()))) {
        String in = null;
        while (p.isAlive() && (in = reader.readLine()) != null) {
            System.out.println(in);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }

} catch (IOException e) {
    e.printStackTrace();
}
这似乎不起作用

我检查了生成的命令是否正确,并且在手动执行时运行良好,但似乎上面的
进程
根本没有执行,并且没有任何
错误或
异常

我错过了什么?

编辑:我的问题不是找不到
可执行文件,而是它没有运行

编辑:
参数
值为:

String params = String.format("%d %s %s %s %d %d %d %d %d %d %d %d",
                            3,
                            videoPath,
                            bgImagePath,
                            distPath,
                            x1, y1, w1, h1,
                            x2, y2, w2, h2);
更新:我将
ProcessBuilder
替换为:

Process p = Runtime.getRuntime().exec(programFolder + SUB_PATH + " " + params, null, programDir);
现在它工作得很好


我仍然想知道为什么使用
ProcessBuilder
不起作用?

哪些参数传递给ProcessBuilder?@Berger请参见编辑…分别传递每个参数,而不是串联字符串。@assylias确实解决了问题。。。非常感谢。你能详细谈谈这个问题吗?生成的命令与在一个
字符串中包含参数的命令完全相同,但是现在它可以工作了…@assylias谢谢。我不是在暗示你穿的是被否决的那个,否则我会给你贴标签。。。再次感谢你。。。