我正在编写一个小型 Java 应用程序,但遇到文件路径问题。
我想执行一个批处理文件
Runtime.getRuntime().exec("cmd/c start c:\program files\folder\file.bat");
但现在 Java 因文件路径中的空格而哭泣。
我怎样才能逃脱它?
编辑:
好的,谢谢大家的回答。 但是我遇到了一个新问题:
如果我以这种方式启动 .bat,它只会打开一个 cmd 窗口,但什么也没有发生。但是,如果我将 .bat 移动到 c:/folder/中而没有空格,它就可以工作…….bat 本身也很好。
最佳答案
您可以通过使用 Runtime#exec 来避免任何此类问题。需要一个 String[]:
Runtime.getRuntime().exec(new String[] {"cmd", "/c", "start", "c:\\program files\\folder\\file.bat"});
这样你就不用担心引用文件名了。但是,您仍然需要担心在文件名中引用\。
关于java - 转义文件路径中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7596235/