2013-01-20 43 views
2

我正在編寫一個應該與大型.NET庫交互的OpenOffice擴展。如建議here,一個合理的解決方案是使用IKVM.NET,擴展名用Java編寫,與Mono庫交互。但問題是,如何引入IKVM.NET作爲OpenOffice的JRE。IKVM.NET作爲OpenOffice的JRE

回答

1

我認爲這是不可能的,沒有重新編譯OpenOffice。 OpenOffice有一個非常強大的Java VM檢查。如果你想這樣做,那麼你需要:

  • 重命名或複製ikvm.exe到java.exe。
  • 對於Java 7,使用IKVM的設置對this fix checkin進行等於更改。供應商是「Jeroen Frijters」。目前的ikvm版本爲1.7.0。然後重建OpenOffice或LibreOffice。
  • 然後在菜單工具進入IKVM斌父目錄的路徑 - 選項 - OpenOffice.org - Java的

替代你可以改變IKVM爲「Oracle公司」的供應商和重建。

但我不知道這應該如何與單聲道工作。

+0

謝謝。這真是一個很好的單挑。事實上,不需要重新編譯整個OpenOffice。這個檢查是通過'sunjavaplugin.so'(Windows中的'sunjavaplugin.dll')來完成的,後者又使用'javavendors.xml',我只需要修補這兩個文件就可以讓OpenOffice將「Jeroen Frijters」識別爲新的供應商。另一方面,OpenOffice使用'JREProperties.class'來提取供應商屬性(如'java.vendor','java.version'和'java.home')。只要供應商是「Jeroen Frijters」,更簡單的方法可能就是修補'JREProperties.java'來誤導OpenOffice。 – Hedy

+0

但是,'JNI_CreateJavaVM'沒有在IKVM.NET中實現,(如果我是對的)它不能用作面向對象的JRE。 – Hedy

+0

我不知道你的意思。看起來我是java.exe正在調用。爲什麼需要一個CreateJavaVM?你應該聯繫郵件列表。有更好的專家。 – Horcrux7