[英]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.