java - System.loadLibrary() 给出 java.lang.UnsatisfiedLinkerError : Can't load library

标签 java dll

我在通过 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/

相关文章:

java - 通用报告格式++ : Yet Another CRF Tool Kit

c# - 如何从 C# 中的 dll 导入访问 char***

C++ 指向 struct 新数组的指针到 delphi 到 DLL 函数

C# 数据库访问 : Best method to use for getting data

java - 为什么我的 Sprite 在 LibGDX 中闪烁?

java - 在Fragment中使用ListView

java - 关于简单客户端服务器套接字应用程序的一些问题

java - 使用 MySQL 的 SimpleJdbcInsert

c++ - 如何隐藏 C++ dll 中的类?

c# - 我可以做 "using namespace.class"吗?