Read MSI file with Java

java, windows-installer

Solution

MSI files are COM structured storage. http://en.wikipedia.org/wiki/COM_Structured_Storage

There are a few options. You could try to access it with something like this: http://poi.apache.org/poifs/index.html

You could use JNI to access the native MSI APIs.

Or, you could shell out to something like a vbscript. The script dumps the results you want to stdout, which you then capture and parse in your java app.

Problem

I have found how to read MSI files with .Net. Some of them use some libraries that come with Wix. Is there a way I read MSI data using Java. I would like to access the tables and get text values.

Original source