0

我正在尝试使用文件名具有多个空格的 java 程序打开图像。直接windows命令工作正常,但是当我通过java程序执行时它没有打开。

直接命令:

rundll32.exe shell32.dll ShellExec_RunDLL "C:\Logfiles\Client_Logfiles\Attachments\1044\image2   Copy.jpg"

通过java:(这不起作用)

p_fileName = "C:\Logfiles\Client_Logfiles\Attachments\1044\image2   Copy.jpg"
String cmd = "rundll32.exe shell32.dll ShellExec_RunDLL ";
Runtime.getRuntime().exec(cmd + "\""+p_fileName+"\"");

但如果文件名有一个空格,则可以正常打开:

请对此有任何想法,并感谢您的帮助。

4

2 回答 2

0

尝试:

p_fileName = "C:\\Logfiles\\Client_Logfiles\\Attachments\\1044\\image2   Copy.jpg"

或者

p_fileName = "C:/Logfiles/Client_Logfiles/Attachments/1044/image2   Copy.jpg"
于 2016-10-20T12:13:26.390 回答
0

问题是你连接命令。为了使其正确使用 exec 的数组版本并使用 '/' 而不是 '\':

String args[] = {
    "rundll32.exe",
    "shell32.dll",
    "ShellExec_RunDLL",
    "C:/Logfiles/Client_Logfiles/Attachments/1044/image2   Copy.jpg"
};
Runtime.getRuntime().exec(args);
于 2016-10-20T12:22:11.833 回答