java - 使用 ProcessBuilder 调 window cmd指令太长导致找不到

发布时间 2023-04-19 19:05:32作者: 岑惜

 

pb.command不可使用一个长字符串指令command,需要把每个指令参数分开,放入集合中
Process process = null;
       
            ProcessBuilder pb = new ProcessBuilder();
            //指令太长会导致无法找到文件,被视为一个完整的指令,应该每个空格都是为一个指令
            List<String> ls = new ArrayList<>(Arrays.asList(command.split(" ")));
            pb.command(ls);
            //processBuilder支持将inputStream与ErrorStream合并为一个Stream,即所有的输出信息都合并到inputStream中,这样做可以减少一个线程
            pb.redirectErrorStream(true);
            process = pb.start();