x.5*_*509 11 java eclipse java-native-interface
我试图使用以下代码System.loadLibrary("mydll")在java中加载一个DLL;
该项目放在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的依赖性问题.例外是一样的.使用Dependency Walker(http://www.dependencywalker.com/)之类的东西来查看你的DLL是否依赖于系统库路径上的其他任何东西.
编辑:UnsatisfiedLinkError:如果Java虚拟机无法找到声明为native的方法的相应本机语言定义,则抛出该异常 - 您似乎正在使用不存在的JNI函数.
小智 5
您遇到的一个问题是: System.load("D:\mydll.dll"); 应该是 System.load("D:\\mydll.dll"); 或 System.load("D:/mydll.dll");
我在 System.load 上取得了更大的成功,但 loadlibrary 更适合多平台设计。它会为您计算扩展名。
归档时间: |
|
查看次数: |
70260 次 |
最近记录: |