如何将 Open Office(32 位)与 64 位 Java 运行时环境集成?

Posted

技术标签:

【中文标题】如何将 Open Office(32 位)与 64 位 Java 运行时环境集成?【英文标题】:How can I integrate Open Office (32-bit) with a 64-bit Java Runtime Environment? 【发布时间】:2016-01-19 20:28:00 【问题描述】:

我目前在 Windows 2012 上运行带有 Java JRE 1.8.66 64 位的 ColdFusion 11 64 位安装。我想安装 Open Office 以及 JODConverter Java 库,以便我可以使用这些库来转换 Office 文件到带有代码的 PDF。我已经在带有 ColdFusion 8 32 位的 Windows 2003 32 位中成功运行了这个安装。我也成功地在 Windows 7 中使用 ColdFusion 8 和 64 位 JRE。

在 CF11/2012 服务器上,我安装了 Open Office 3.4.1,但它只允许安装 32 位。我认为 32 位/64 位差异会导致问题,因为每次我尝试实例化 Java 库时,它都会引发“对象实例化异常”:

堆栈跟踪:

Message: org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration
    StackTrace: java.lang.ClassNotFoundException: org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration
        at coldfusion.bootstrap.BootstrapClassLoader.loadClass(BootstrapClassLoader.java:235)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at coldfusion.runtime.java.JavaProxyFactory$1.run(JavaProxyFactory.java:156)
        at java.security.AccessController.doPrivileged(Native Method)
        at coldfusion.runtime.java.JavaProxyFactory.getProxy(JavaProxyFactory.java:151)
        at coldfusion.runtime.ProxyFactory.getProxy(ProxyFactory.java:65)
        at coldfusion.runtime.CFPage.createObjectProxy(CFPage.java:6167)
        at coldfusion.runtime.CFPage.CreateObject(CFPage.java:6130)
        at coldfusion.runtime.CFPage.CreateObject(CFPage.java:6064)
        at coldfusion.runtime.CFPage.CreateObject(CFPage.java:6039)
        at coldfusion.runtime.CFPage.CreateObject(CFPage.java:5986)

有什么方法可以让这种集成正常工作吗?

【问题讨论】:

您是否看到有关使用 ColdFusion 11 配置 OpenOffice 的文档? Installing Integrated Technologies 底部有一个配置 OpenOffice 部分查看它们包含在 Windows 服务器的类路径和库路径中的 JAR 文件。如果这仍然没有让您通过实例化问题,那么看起来他们还可以选择远程运行 OpenOffice,如果它确实是一个位问题(也在链接文档中提到)。 您不能在 Windows 上混合搭配 32 位和 64 位 Java; WoW64 子系统无法与 WoW32 交互。 @Miguel-F,是的,我读到了,但是,它并没有真正告诉我任何我不知道的事情。我想我现在需要将 ColdFusion 重新安装为 32 位。不知道有没有什么技巧可以让它发挥作用。 您可以在同一个 Windows 桌面上安装 32 位和 64 位 JVM,只要它们安装到不同的文件夹即可。为什么 Windows 2012 不是这种情况?你有没有尝试过?如果可以,只需将 Open Office 配置为指向 32 位 JVM。 你可以试试 LibreOffice 5 的 64 位版本,看看它是否足够稳定。 【参考方案1】:

似乎最好的解决方案是用 CFDOCUMENT 调用替换我现有的代码(调用 JODConverter java 库),因为在 ColdFusion 11 中不再需要 Java 对象来实现所需的功能。

【讨论】:

以上是关于如何将 Open Office(32 位)与 64 位 Java 运行时环境集成?的主要内容,如果未能解决你的问题,请参考以下文章

如何让32位OFFICE 2003与64位OFFICE 2013共存

office32位和64位的区别,用户如何选择

如何判断Office是32位还是64位?

如何使用 Office 64 位安装 Microsoft.Ace.oledb 32 位?

使用 32 位 office 访问 64 位运行时

已经安装32位的office,需要卸载掉才可以安装64位的吗