java - 转义文件路径中的空格

标签 java windows exec whitespace filepath

我正在编写一个小型 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/

相关文章:

java - 添加 JDBC jar 以便 Spring Framework 可以找到它

java - 延迟处理直到 GUI 输入

java - 如果一个类实现了多个接口(interface),那么 `equals()`应该实现到哪个接口(interface)呢?

linux - 搜索和替换整个文件

执行exec的PHP脚本

java - 存储可通过 php 调用的 java 可执行文件

java - null = ""对于字符串

windows - 如何仅使用 WaitForDebugEvent 系列函数来监视 UNHANDLED 异常?

c# - .NET 跟踪日志查看器

c++ - 强制程序以非编程方式使用可执行文件的目录进行 I/O 而不是事件目录