我希望使用具有以下签名的方法:

exec(String command, String[] envp, File dir)


假设我的程序名为“ myprog.exe”,位于“ C:\ Program Files \ My Software”。使用Runtime.exec的正确语法是什么?我不断收到错误消息“系统找不到指定的文件”。为了明确起见,我希望从目录“ C:\ Program Files \ My Software”而不是从运行Java程序的位置启动myprog.exe。

最佳答案

我建议改用exec()的其他形式:

exec(String[] cmdarray, String[] envp, File dir)


使用此方法,您可以将完整路径传递给cmdarray[0]中的可执行文件,并将其传递给后续数组元素中的命令参数(如果有)。这比处理引号或转义符或使它与简化的exec()起作用可能需要做的任何事情都要健壮。

要回答问题的另一部分,请确保在上述"C:\\Program Files\\My Software"调用的dir参数中传递要启动程序的路径(exec())。还要注意,我在路径名中使用了\\,因为Java使用\作为转义字符,这意味着您必须在表示路径名的文字字符串中使用两个。

10-04 11:40
查看更多