雅各布 - 不能共同创造对象

时间:2014-06-06 18:08:24

标签: java windows dll jacob

我的环境是Java 7,在Windows 7 - 64位上。所以这是我遵循的要求和程序

  1. 我想从Java
  2. 执行一个名为test.dll的库
  3. 我首先下载了latest version of jacob,并将它们放在一个文件夹中,该文件夹包含在Windows环境变量PATH中。
  4. 我在test.dll下使用regsvr32.exe注册了C:\Windows\SysWOW64(已成功!)
  5. 我正在使用网络应用程序运行jacob,因此我确保WEB-INF/lib中包含jacob.jar
  6. 我还设置了一个java系统属性 - -Djava.library.path=c:/dev/jacob/jacob-1.17-x64.dll(这是我保留jacob-1.17-x64.dll的地方)
  7. 我还在面对

    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:99)
    

    我已经完成many of the SO posts但到目前为止他们都没有帮助我

    有人可以请我指导解决方案吗?

2 个答案:

答案 0 :(得分:3)

通过将jdk从64位更改为32位,解决了类似的问题。

答案 1 :(得分:0)

查看Jacob Dispatch的源代码,第99行(http://jacob-project.cvs.sourceforge.net/viewvc/jacob-project/jacob/src/com/jacob/com/Dispatch.java?revision=1.18&view=markup),错误不在Jacob中(至少不是Java代码)。 在深入研究Jacob本机代码之前,我会尝试在另一个容器中创建这个COM对象,例如Excel宏或Windows Scripting Host。我相信你会发现同样的错误,或者至少能够确定Jacob是否是罪魁祸首。我怀疑不是。