JACOB和64位JVM - 它有效吗?

时间:2017-04-24 15:07:58

标签: java dll jvm jacob

使用JACOB使用32位JVM生成PDF多年没有问题,使用Jacob.jar和Jacob.dll。 我们现在需要升级到64位JVM,原因有很多。我已经下载了64位的最新Jacob.jar和dll并安装并添加到路径中,但是当我运行时,我得到:

com.jacob.com.ComFailException: Can't co-create object
at com.jacob.com.Dispatch.createInstanceNative(Native Method)
at com.jacob.com.Dispatch.<init>(Dispatch.java:160)
at com.jacob.activeX.ActiveXComponent.<init>(ActiveXComponent.java:54)
at ...

我正在使用jre 1.8.0_131,Jacob.jar的清单是: -

Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.9.2 
Created-By: 1.7.0_79-b15 (Oracle Corporation) 
Built-By: joe
Name: com.jacob 
Specification-Title: JACOB : Java COM Bridge 
Specification-Vendor: http://jacob-project.sourceforge.net 
Implementation-Title: JACOB : Java COM Bridge Java libraries 
Implementation-Version: 1.18 build 01 on 05-August-2015 05:01:11 
Trusted-Library: true 
Application-Name: Java-Windows Bridge 
Permissions: all-permissions 
Codebase: *

和Jacob dll是Jacob-1.18-x64.dll

有没有人在JACOB上使用64位JVM取得了成功。专门用于制作PDF? 任何建议都会有所帮助,因为我已经争取了一段时间! 我读过的其他堆栈溢出线程: - Can't co-create object

非常感谢

1 个答案:

答案 0 :(得分:0)

我可以像这样在Java 1.8和Jacob-1.19-x64.dll上使用它

  • 将dll复制到:

    1. C:\ Windows \ SysWOW64 \

    2. C:\ Program Files \ Java \ jdk1.8.0_141 \ lib

    3. C:\ Program Files \ Java \ jdk1.8.0_141 \ bin

  • 在注册表中,将注册表项DllSurrogate添加到键HKCRWow6432NodeAppID {E2779C61-F87E-4038-98A0-1D9E71334706}中,但不带任何值。

  • 使用GUID {E2779C61-F87E-4038-98A0-1D9E71334706}在HKLMSoftwareClassesAppID中创建新密钥,不带任何值。


来源: