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