我正在尝试从我的 Java 应用程序运行 .bat 文件。我已经尝试了所有我能找到的方法,但似乎都没有奏效。
问题是 .bat 文件的路径包含空格。
我现在正在使用这个方法,所以我可以在我的 Eclipse 控制台中看到结果
我的实际代码是:
Runtime rt = Runtime.getRuntime();
String processString = "cmd /c \"" + homeFolder.getAbsolutePath() + SETUP_FILE + "\" \"" + homeFolder.getAbsolutePath() + "\"";
try {
Process proc = rt.exec(processString);
...
}
我尝试过转义引号,而不转义引号,将字符串分隔成String[]
并将每个空格分隔的命令放置在自己的单元格中:
{ "cmd", "/c", \"" + homeFolder.getAbsolutePath() + SETUP_FILE + "\" ... };
同样,无论是否转义引号:没有任何效果。
我还尝试对数组和字符串的路径进行硬编码。每次结果都一样。
homeFolder = C:\Users\La bla bla\workspace\ToolMaker\bin\
SETUP_FILE = setup.bat
整个命令是这样的:
cmd /c "C:\Users\La bla bla\workspace\ToolMaker\bin\setup.bat" "C:\Users\La bla bla\workspace\ToolMaker\bin"
同样,无论有没有引号,相同的输出:
Output:
Error: 'C:\Users\La' is not recognized as an internal or external command,operable program or batch file.
显然我在 Windows(7、64 位专业版)上运行。爪哇 7
我看到一些人说他们以前遇到过这个问题,但我找不到如何解决这个问题的答案。