Netbeans IDE:java.lang.UnsatisfiedLinkError:OBIDISC4J.dll:找不到依赖库

时间:2017-04-07 13:42:58

标签: java netbeans dll executable-jar

我正在尝试执行与UHF阅读器集成相关的程序。编程SDK(ID_ISC.SDK.Java-V4.7.0)由读卡器制造商提供(在我的例子中,读者是FEIG Electronic的ID ISC.MRU102-USB读卡器)。当我尝试从此SDK运行示例项目时,出现以下错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Program Files\OBID\OBIDISC4J.dll: Can't find dependent libraries
       at java.lang.ClassLoader$NativeLibrary.load(Native Method)
       at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
       at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1857)
       at java.lang.Runtime.loadLibrary0(Runtime.java:870)
       at java.lang.System.loadLibrary(System.java:1122)
       at de.feig.FedmIscReader.<init>(Unknown Source)
       at ISOHostSample.ISOHostSample.<init>(ISOHostSample.java:41)
       at ISOHostSample.ISOHostSample.main(ISOHostSample.java:865)

我按照SDK中自述文件中的说明进行操作:

我已将所需的.dll文件和.jar文件(OBIDISC4J.jar)放在Program Files下的OBID文件夹中,并且我已在Path环境变量中输入此路径。

程序在运行时导航到此路径,但无法从中获取jar库文件,因此抛出了上述异常。

任何有关解决此问题的帮助将不胜感激。谢谢

2 个答案:

答案 0 :(得分:0)

我对“depends.exe”Dependency Walker工具运气不错,专门了解它找不到哪些依赖库。最后,通常是因为他们不在你的课堂上。

DLL需要在应用程序的CLASSPATH上,这与Path环境变量不同。由于“src”文件夹已经在类路径中,我通常会在“src”中创建一个“native \ windows”或“native / linux”文件夹,并将所有的.DLL或.SO库放在那里。

如果由于某种原因将库放在项目文件夹中不是一个选项,您可以在命令行中指定类路径到java.exe:“java -classpath -jar MyJar.jar”

答案 1 :(得分:0)

我遇到了同样的问题。我的解决方案是将所有FEIG dll复制到Java bin路径。