使用Runtime.exec“Program Files”的正确语法

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

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

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

我会推荐使用exec()的其他风格:

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

使用此方法,可以将完整路径传递给cmdarray[0]的可执行文件和后续数组元素中的命令参数(如果有的话)。 这比处理引用或转义更强大,或者可能需要做的任何事情来使其与简单的exec()

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