Search code examples
java.netdllapache-poiikvm

Convert Apache POI .jar to .dll using IKVM.Net


I'm trying to convert Apache poi .jar to .dll . I used the script below to convert. However I'm getting lot of warnings and error Invalid option -resource:poi-3.8-20120326.dll after that. Here's the script i used.

ikvmc -target:library poi-ooxml-schemas-3.8-20120326.jar
ikvmc -target:library poi-3.8-20120326.jar
ikvmc -target:library -resource:poi-3.8-20120326.dll poi-scratchpad-3.8-20120326.jar
ikvmc -target:library -resource:poi-3.8-20120326.dll poi-ooxml-schemas-3.8-20120326.dll poi-scratchpad-3.8-20120326.dll poi-ooxml-3.8-20120326.jar
ikvmc -target:library -resource:poi-3.8-20120326.dll poi-ooxml-3.8-20120326.dll poi-excelant-3.8-20120326.jar

Is this correct way to use IKVM.Net . If not what is the correct script to do this.


Solution

  • I just completed a project where I have successfully converted and used Apache POI 3.9 using IKVM 0.46.0.1. The converted set of DLLs support pre 2007 and post 2007 Microsoft Office formats.

    Prerequisites:

    Download POI 3.9 and copy all the JAR files into one directory Download IKVM (I used version 0.46.0.1) The following commands (run in Windows 7 command line in the same directory where all the POI JARs are) did the trick for me:

    ikvmc -target:library xmlbeans-2.3.0.jar
    ikvmc -target:library stax-api-1.0.1.jar
    
    ikvmc poi-ooxml-schemas-3.9-20121203.jar -target:library -reference:xmlbeans-2.3.0.dll -reference:stax-api-1.0.1.dll 
    
    
    ikvmc -target:library log4j-1.2.13.jar
    ikvmc -target:library commons-logging-1.1.jar
    ikvmc -target:library commons-codec-1.5.jar
    
    ikvmc poi-3.9-20121203.jar -target:library -reference:log4j-1.2.13.dll -reference:commons-logging-1.1.dll -reference:commons-codec-1.5.dll
    
    ikvmc -target:library dom4j-1.6.1.jar
    
    ikvmc poi-ooxml-3.9-20121203.jar -target:library -reference:poi-3.9-20121203.dll -reference:poi-ooxml-schemas-3.9-20121203.dll -reference:dom4j-1.6.1.dll -reference:xmlbeans-2.3.0.dll
    

    Hope it helps.