我知道已经有几十个关于处理在 Java 中执行具有带空格路径的系统命令的问题,但是我还没有找到针对我的确切情况的解决方案。
我在java.exe
Windows 10 计算机上使用 jdk-1.8.x 附带的那个。我要执行的命令如下(我最终希望ProcessBuilder
在 Java 程序中使用,但我的问题并不取决于以这种方式执行的命令;如果我也直接在终端中输入它,它仍然存在) :
cmd.exe /C "G:\myself\...\My Folder\...\runtime\bin\java.exe" -jar "G:\myself\...\My Folder\...\application.jar" <app_args>
两个路径都包括My Folder
, 一个名称中带有空格的目录。但是,通往java.exe
工作的路径,但通往application.jar
没有的路径。
我知道第一条路径有效,因为我可以运行:
cmd.exe /C "...\java.exe" -version
但是当我尝试运行第二个时,错误是:
'G:\myself\...\My' is not recognized as an internal or external command, operable program or batch file.
这里发生了什么?为什么 java 的路径有效,而 jar 的路径无效?解析jar路径是否java.exe -jar <jar_path>
与终端解析java路径不同?