繁体   English   中英

Java exec和rundll32参数问题

[英]Java exec and rundll32 parameter issue

我在使用String [] exec从Java启动Windows Photo Viewer时遇到一个奇怪的问题(实际上,我在使用Commons Exec,但在内部它就在那儿)

    String exec = "C:\\WINDOWS\\System32\\rundll32.exe \"C:\\Program Files\\Windows Photo Viewer\\PhotoViewer.dll\", ImageView_Fullscreen c:\\temp\\foo.png";   
String[] params = new String[] {"C:\\WINDOWS\\System32\\rundll32.exe", "\"C:\\Program Files\\Windows Photo Viewer\\PhotoViewer.dll\", ImageView_Fullscreen", "c:\\temp\\foo.png"};
Process process = Runtime.getRuntime().exec(exec);
int result = process.waitFor();
System.out.println(result);

如果运行此命令,程序会正常生成,但是如果尝试执行exec(params),我将立即返回0。

我认为问题出在“引用的dll”操作部分附近,但我无法查明。 指针?

预先感谢,尼克

似乎有些引号是错误的:

可以设置dll的路径,而无需使用附加引号。 此外,ImageView_Fullscreen也可以作为单独的参数提供

String[] params = new String[] {"C:\\WINDOWS\\System32\\rundll32.exe", "C:\\Program Files\\Windows Photo Viewer\\PhotoViewer.dll", "ImageView_Fullscreen", "c:\\temp\\foo.png"};

这应该打开文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM