我有一个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文件和&#34;。&#34;我收到了消息
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添加到我的类路径中。
答案 0 :(得分:0)
仔细检查java.library.path值。 确保使用绝对路径。 相对路径会让你认为你的java.library.path是正确的,实际上它实际上是不正确的。
如果您要添加“。”在java.library.path中,您需要在执行代码时仔细检查“当前工作目录”。
如果需要在java.library.path中使用相对路径,请确保在执行代码时路径与“工作目录”相对。