我试图从我的Java应用程序运行一个.bat文件。我尝试了所有可以找到的方法,但似乎没有任何工作。包含空格的Java运行命令行
问题是包含空格的.bat文件的路径。
我使用this方法,所以我现在可以看到我的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 + "\" ... };
再次,有和没有逸出报价s:没有用。
我也尝试硬编码数组和字符串的路径。每次都有相同的结果。
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位专业运行)。 Java 7
我看到一些人说他们之前有这个问题,但我找不到如何解决这个问题的答案。
你试过编码空格字符吗? – dantuch 2012-08-06 00:22:39
我试图用UTF-8编码整个字符串。不知道这是什么意思 – 2012-08-06 00:24:33