ProcessBuilder无法找到指定的文件,而Process可以
我正在尝试从Java程序运行jar文件,并且成功使用了getRuntime():
Process processAlgo = Runtime.getRuntime().exec("java -jar "+algoPath);但是,当我尝试使用时ProcessBuilder,出现The system cannot find the file specified异常:
ProcessBuilder builder = new ProcessBuilder("java -jar " + algoPath);Process processAlgo = builder.start();
我试图更改指定文件的位置,并指出了其完整路径,但无法正常工作。是什么原因引起的?
回答:
ProcessBuilder 希望它的参数分别传递。
也就是说,对于每个命令和参数,ProcessBuilder希望将其视为单独的参数。
目前,您正在告诉它运行“ java -jar algoPath的值是什么” …从ProcessBuilder的角度来看,这是无效的命令。
尝试…
ProcessBuilder builder = new ProcessBuilder("java",  "-jar", algoPath);Process processAlgo = builder.start();
代替。
如果algoPath包含空格(即,一个以上的参数),则也需要将它们分隔为单独的参数,否则您的程序将无法执行,因为Java会将其algoPath视为单个参数。
查看JavaDocs了解更多详细信息
以上是 ProcessBuilder无法找到指定的文件,而Process可以 的全部内容, 来源链接: utcz.com/qa/419355.html








