我想使用 Runtime.exec() 在带有空格的目录中启动另一个进程。(听起来很蠢,但我真的很想满足我的好奇心)
问题详情(简化版) 我有一个 myprogram.exe,位于 C:/Program Files/MyProgram。
我观察到:1)。当我调用 Runtime.exec("C://Program Files//MyProgram//myprogram.exe") 时,IOException 表示:找不到文件 C:/Program,错误代码 = 2。我认为它必须是一个结果空间的
2)。我试过:Runtime.exec("/"C://Program Files//MyProgram//myprogram.exe/""),IOException表示:找不到文件:"C:/Program Files/MyProgram/myprogram.可执行程序”
3)。我吸取了教训并尝试了 Runtime.exec() 的重载版本: File dir = new File("C://Program Files//MyProgram//"); 然后运行:Runtime.exec("myprogram.exe", null, dir),它说:can't find file myprogram.exe in C:/Program Files/MyProgram/
4)。我试过 1),而不是“程序文件”,我将它重命名为 Program_Files,一切正常
我知道我也可以使用 ProcessBuilder 来做类似的事情,但我心里放不下……(也许是我的弱点)。谁能告诉我为什么 2) 和 3) 不起作用?
谢谢。