【发布时间】:2014-11-01 20:12:04
【问题描述】:
我有一个 JNI dll 以及一个我在使用 eclipse 的机器上创建的 jar 文件。
我正在尝试将其部署到另一台机器上,但无法通过异常
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\CcmAccess\CcmJNIBase.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Meth
at java.lang.ClassLoader.loadLibrary1(Unknown Source)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at com.sig.ccm.CcmBase.<clinit>(CcmBase.java:8)
at ReadTimeDomain.setupSample(ReadTimeDomain.java:24)
at ReadTimeDomain.main(ReadTimeDomain.java:97)
我有另一个程序打印出 java.library.path,我已经验证了这个 dll 所依赖的 dll 以及这个 dll 在 java.library.path 中。
我已经阅读了它们应该放在当前目录中的帖子,但这不起作用。
我已经阅读了它们应该放在 jre/bin 中的帖子,并且得到了相同的结果。
任何帮助将不胜感激。
编辑:
如果我从路径中取出所有内容并强制类路径只包含 jar 文件和“。”我收到消息
Exception in thread "main" java.lang.UnsatisfiedLinkError: no CcmJNIBase in java.library.path
当我将此 dll 的位置添加到路径 C:\CcmAccess 中时,我会收到完整的消息:
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\CcmAccess\CcmJNIBase.dll: Can't find dependent libraries
在这似乎工作的机器上,我所要做的就是将依赖的 dll 添加到我的类路径中。
【问题讨论】:
-
您是否在 java.library.path 中使用了绝对路径?
标签: java java-native-interface