我在通过 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,以及为什么即使在文件被删除后它仍然在该位置查找?
最佳答案
您需要更改 -Djava.library.path 以指向 system32 而不是 C:\libraries。
关于java - System.loadLibrary() 给出 java.lang.UnsatisfiedLinkerError : Can't load library,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10709935/