我遇到了通过java的System.loadLibrary(“name.dll”)加载一个简单的.dll的问题。 我在C:\ libraries \ name.dll中有一个dll副本以及system32文件夹中的另一个副本。 请注意,C:\ libraries不在我的路径环境变量中。 出于某种原因,当我调用System.loadLibrary(“name.dll”)时,我得到了:
java.lang.UnsatisfiedLinkError: Can't load library: C:\libraries\name.dll
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1706)
at java.lang.Runtime.load0(Runtime.java:770)
at java.lang.System.load(System.java:1003)
即使我从C:\ libraries中删除了name.dll,我仍然会收到同样的错误。是否有任何理由说System.load在不在路径中的位置找到.dll,为什么即使在删除文件后它仍然在该位置查找?
答案 0 :(得分:1)
您需要将-Djava.library.path更改为指向system32而不是C:\ libraries。