Java exec和rundll32参数问题

时间:2018-04-09 07:44:44

标签: exec

我有一个奇怪的问题,就是使用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",操作部分,但我还没有能够确定它。指针?

提前致谢,  NIK

1 个答案:

答案 0 :(得分:0)

似乎有一些错误引用:

可以在没有附加引号的情况下设置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"};

这应该打开文件。