我希望使用具有以下签名的方法:
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使用\
作为转义字符,这意味着您必须在表示路径名的文字字符串中使用两个。