2012-08-16 175 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\"");