我遇到了一个奇怪的问题,用String[]执行从Java启动(实际上,我使用的是Commons,但在内部,它就在那里)
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);如果我运行这个程序,程序就会产生很好的结果,但是如果我尝试执行(Params),我只会立即返回0。
我想问题就在“引用dll”操作部分的某个地方,但是我还没有找到它。指针?
提前谢谢你,尼克
发布于 2018-04-09 08:10:41
似乎引用了一些错误的话:
可以在没有附加引号的情况下设置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"};这应该会打开文件。
https://stackoverflow.com/questions/49727859
复制相似问题