2012-08-16 177 views
0

所以我尝试运行一个.msi文件,就像我会exe文件,这可能是问题。我得到这个错误信息在java中运行.msi文件

产生java.io.IOException:不能运行程序 “\”:CreateProcess的错误= 193, %1不是有效的Win32应用程序

 try { Runtime rf = Runtime.getRuntime(); 
        Process pf = rf.exec("\\IE8fix.msi");  
       } catch(Exception e) {     
        System.out.println(e.toString());     
          e.printStackTrace(); 
                } 
+0

我怀疑Java可以与MSI – poussma 2012-08-16 17:22:07

+0

它看起来像你都争相推出的IE 8定影液的本地版本,执行Windows网络上的任何东西(下\\^h试。你为什么不能双击运行此点击? – DankMemes 2012-08-16 17:24:38

回答

4

Windows安装是%%windir%\ msiexec.exe MSI文件不是独立的。它需要像msiexec \"file.msi\" 运行,这样使用:

try { 
    Runtime rf = Runtime.getRuntime(); 
    Process pf = rf.exec("msiexec /i \"\\IE8fix.msi\"");  
} catch(Exception e) {     
    //System.out.println(e.toString()); // not necessary  
    e.printStackTrace(); 
} 
+0

我该如何为/a安装添加斜杠? – jerhynsoen 2012-08-16 17:32:50

+0

我不知道我想通了,它会变成ri在msiexec和之前的\ ght \谢谢! – jerhynsoen 2012-08-16 17:40:53

+1

下面是该命令的一个很好的参考:http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/msiexec.mspx?mfr=true – 2012-08-16 23:44:50

0

.msi文件是不是像一个EXE一个独立的程序,它应该从Windows安装程序是这样的(我希望这是正确的)运行:

Process pf = rf.exec("msiexec \"\\IE8fix.msi\"");