我發現如何用.Net讀取MSI文件。其中一些使用Wix附帶的一些庫。有沒有辦法使用Java讀取MSI數據?我想訪問表格並獲取文本值。用Java讀取MSI文件
3
A
回答
1
MSI文件是COM結構化存儲。 http://en.wikipedia.org/wiki/COM_Structured_Storage
有幾個選項。您可以嘗試使用類似如下的方式訪問它: http://poi.apache.org/poifs/index.html
您可以使用JNI訪問本機MSI API。
或者,你可以掏出來的東西像一個VBScript。該腳本將您想要的結果轉儲到stdout,然後在java應用程序中捕獲並解析結果。
1
.MSI基本上是一個數據庫。如果您可以使用Java的JdbcOdbc驅動程序讀取MS Access .MDB文件,則可以使用相同的代碼來打開.MSI,然後讀取它的表格。
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String msiFileName= "d:/java/test.msi";
String connectString = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
connectString += msiFileName.trim() + ";DriverID=22;READONLY=true}";
Connection con = DriverManager.getConnection(connectString ,"","");
至少在理論上。 :)
1
你能否通過Java使用Windows Installer API?
的API操縱MSI文件支持的唯一途徑。如果您使用的是.NET或WiX,那麼您將使用這些調用這些函數或函數的函數或函數。
MSI的二進制文件格式是無證和版本之間可能會發生變化,所以試圖讀/寫的二進制格式直接只是想給你一個真實的頭痛。
相關問題
- 1. 用XML讀取文件Java
- 2. 用java讀取tzdata文件
- 3. 用Java讀取XSD文件
- 4. 用Java讀取XML文件
- 5. 用Java讀取bin文件
- 6. 用Java讀取XML文件
- 7. 用Java讀取文件
- 8. 用Java讀取CSV文件
- 9. 用Java讀取XML文件
- 10. 用Java讀取文件
- 11. 用Java讀取pgm文件
- 12. 用Java讀取.txt文件?
- 13. 使用java讀取文件頭文件
- 14. 用metod JAVA讀取BIG文本文件
- 15. 用Java讀取文本文件
- 16. 用java讀取文本文件
- 17. 用java讀取unicode文本文件
- 18. 用Java讀取文本文件
- 19. 如何使用Java下載.msi文件
- 20. 讀取文件的Java 8
- 21. Java,從文件中讀取
- 22. 從Java Servlet讀取文件
- 23. 從java中讀取文件
- 24. 從文件讀取 - Java
- 25. Java讀取文件內容
- 26. 的Java讀取Excel文件
- 27. Java文件讀取問題
- 28. JAVA讀取excel文件
- 29. 從java讀取文件?
- 30. 讀取XML文件在Java
我從JDIC項目中找到了這個packager.jar文件。它具有WinMSIWrapper.dll的JNI包裝。但是,我使用vbscript方法。 – Omar 2010-02-05 21:07:04