我正在尝试使用以下代码在 java 中加载一个 dll System.loadLibrary("mydll");
项目放在D:\development\project\,我把dll放在了D:。然后我在 eclipse 配置中给出了以下 VM 参数 -Djava.library.path=D:/
但是当我运行时,我得到了 UnsatisifiedLinkerError。谷歌搜索了一下后,我用 System.load("D:\mydll.dll");
但又遇到同样的问题,有人可以帮忙吗?
最佳答案
在库路径中指定 DLL 文件名的地方,省略它。此外,您的 System.loadLibrary 调用应该只是“mydll”。我可以(根据经验)告诉您,如果您将 DLL 放在 Eclipse 项目的根目录中(即 D:\Eclipse Workspace\Proj),它应该可以工作。任何进一步的链接器错误都可能来自查找其他 DLL 的依赖性问题。异常(exception)是一样的。使用 Dependency Walker (http://www.dependencywalker.com/) 之类的东西来查看您的 DLL 是否依赖于系统库路径之外的任何其他内容。
编辑:UnsatisfiedLinkError:如果 Java 虚拟机找不到声明为 native 的方法的合适的 native 语言定义,则抛出该错误——您似乎正在使用不存在的 JNI 函数。
关于java - 在 Java 中加载 DLL - Eclipse - JNI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2535700/