java.libary.path 使用 Eclipse 未检测到 Jacob 1.14.3 DLL

Jacob 1.14.3 DLL no detected by the java.libary.path using Eclipse

我正在尝试实现库 JACOB 以与某些支付设备(例如 PINPAD)进行通信。我已经创建了一个 java 项目但是当主要 class 执行在运行时使用 DLL 的方法时给出错误 no jacob-1.14.3-x64 in java.library.path

在这里你可以找到我正在使用的构建项目:

在这里你可以找到我已经尝试过的解决方案


mvn install:install-file -Dfile=C:\Users\adazat\Downloads\ClienteImplantadoJava\jacob-1.14.3\jacob-1.14.3-x64.dll -DgroupId=jacob -DartifactId=jacob-dll -Dversion=1.14.3 -Dpackaging=dll -DgeneratePom=true


mvn install:install-file -Dfile=C:\Users\adazat\Downloads\ClienteImplantadoJava\jacob-1.14.3\jacob.jar -DgroupId=jacob -DartifactId=jacob-jar -Dversion=1.14.3 -Dpackaging=jar -DgeneratePom=true

我在 stack-overflow 中搜索了不同的问题,但尝试任何方法仍然无效,我想知道是否有人有类似的问题,我还可以尝试什么来解决它。非常感谢您的宝贵时间 :D

您必须验证 java.library.path 是否正确。

我在写 -Djava.library.path="C:\Users\adazat\Downloads\ClienteImplantadoJava\jacob-1.14.3\";-Djava.library.path=C:\Users\adazat\Downloads\ClienteImplantadoJava\jacob-1.14.3\; 你必须确保你没有使用

  • "" to surround the path
  • ; at the end
  • and that should be \ at the end of the path to indicate that is a folder that contains the dlls.

我解决后,现在执行程序时出现以下错误。

com.jacob.com.ComFailException: Can't co-create object

仅供参考,您的初始问题:切换到 64 位 JDK 因为无法从 32 位 jre/jdk.

调用 64 位 dll

关于您的下一个错误:

Can't co-create object

在使用 COM 对象之前,它必须在系统中注册(例如,它的 CLSID 或 ProgID 必须存在于 Windows 注册表中)。如果未注册,regasm.exe 实用程序可用于执行此操作:

使用:Regsvr32 PathToDll

或者您也可以尝试:%systemroot%\Microsoft.NET\Framework64\vX.X\RegAsm.exe /verbose /nologo /codebase PINPAD.dll

(将 vX.X 替换为您系统上安装的版本,例如 v3.0 或 v4.0.30319。如果您想使用 32 位 dll,请使用 ...\Framework\... 而不是 ...\Framework64\...

注册后 CoCreateInstance() API 方法可用于获取对对象公开的接口的引用并调用其方法。可以找到更多详细信息 here