2014-06-06 59 views
2

我的環境是Java 7,Windows 7 - 64位。因此,這裏是我的要求和程序,我跟着jacob - 無法共同創建對象

  1. 我想執行一個庫調用test.dll從Java
  2. 我先下載了latest version of jacob,並把他們的文件夾,其中包含在Windows環境變量PATH內。
  3. 我註冊使用C:\Windows\SysWOW64regsvr32.exetest.dll(這是成功的!)
  4. 我從一個Web應用程序運行雅各,所以我確信,WEB-INF/lib中有jacob.jar
  5. 我還設置Java系統屬性 - -Djava.library.path=c:/dev/jacob/jacob-1.17-x64.dll(這是我一直的jacob-1.17-x64.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:99) 

我已經通過many of the SO posts走了,但他們都沒有幫助我到目前爲止

任何人都可以請指導我的解決方案?

+0

我在運行'new ActiveXComponent(「Word.Application」)時出現這個錯誤。當我用具有管理員權限的用戶運行應用程序時,這已經消失了,這很奇怪。我的所有32位(窗口,jdk和辦公室)與雅各布1.14.3 – mzzzzb

回答

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),錯誤不在雅可比範圍內(至少不是Java代碼)。 在挖掘Jacob本機代碼之前,我會嘗試在另一個容器中創建此COM對象,例如Excel宏或Windows腳本宿主。我相信你會發現同樣的錯誤,或者至少能夠確定雅各布是不是罪魁禍首。我懷疑不是。

3

對我來說,類似的問題是通過將jdk從64位更改爲32位來解決的。