IKVM.NET 作为 OpenOffice 的 JRE

Posted

技术标签:

【中文标题】IKVM.NET 作为 OpenOffice 的 JRE【英文标题】:IKVM.NET as the JRE for OpenOffice 【发布时间】:2013-01-20 09:15:16 【问题描述】:

我正在编写一个应该与大型 .NET 库交互的 OpenOffice 扩展。正如here 所建议的那样,一个合理的解决方案是使用 IKVM.NET 和用 Java 编写的扩展,它与 Mono 库交互。然而,问题是,如何引入 。

【问题讨论】:

【参考方案1】:

我认为如果不重新编译 OpenOffice,这是不可能的。 OpenOffice 有一个非常强大的 Java VM 检查。如果你想这样做,那么你需要:

将 ikvm.exe 重命名或复制为 java.exe。 使用 IKVM 的设置对 Java 7 的 this fix checkin 进行等于更改。供应商是“Jeroen Frijters”。当前的 ikvm 版本为 1.7.0。然后重建 OpenOffice 或 LibreOffice。 然后在菜单工具-选项-OpenOffice.org-Java中输入IKVM bin父目录的路径

或者,您可以将 IKVM 的供应商更改为“Oracle Corporation”并重建它。

但我不知道这应该如何与单声道一起使用。

【讨论】:

谢谢。这真的是一个很好的提醒。事实上,没有必要重新编译整个 OpenOffice。检查由sunjavaplugin.so(Windows 中的sunjavaplugin.dll)完成,而javavendors.xml 又使用javavendors.xml,我只需修补这两个文件,让OpenOffice 将“Jeroen Frijters”识别为新供应商。另一方面,OpenOffice 使用JREProperties.class 提取供应商属性(如java.vendorjava.versionjava.home)。更简单的方法可能是修补 JREProperties.java 以在供应商是“Jeroen Frijters”时误导 OpenOffice。 然而,JNI_CreateJavaVM 没有在 IKVM.NET 中实现,并且(如果我是对的)它不能用作 OO 的 JRE。 我不明白你的意思。看来我是 java.exe 正在调用。为什么需要 CreateJavaVM?您应该联系邮件列表。有更好的专家。

以上是关于IKVM.NET 作为 OpenOffice 的 JRE的主要内容,如果未能解决你的问题,请参考以下文章

从后面的代码启动 OpenOffice 作为服务不起作用

如何将 OpenOffice.org 作为后台进程运行以将我的应用程序连接到使用 UNO Java API?

无法连接到 OpenOffice 无头模式

使用 openoffice 公式分隔姓氏和名字

如何阅读 OpenOffice.org 文本文档

使用 C# 中的 OpenOffice 转换文件格式