如何解决java调dll报Unable to load library的错误

 我来答
xiangjuan314
2016-04-05 · TA获得超过3.3万个赞
知道大有可为答主
回答量:2.9万
采纳率:0%
帮助的人:2929万
展开全部
主要是因为你的dll没有搜索到,你把这个dll放到java程序编译后.class文件存放的当前目录,或者PATH环境变量里能搜索到的路径里才行。
当前类(注意是.class文件的存放位置)的运行路径可以这样获取:

System.out.println(Class.class.getClass().getResource("/").getPath());

你打印一下,然后看看这个路径下有没有你的dll。

再或者,你的dll在载入时就用绝对路径也可。

还不行?最后一招:把dll放到windows/system32目录下试试。
千锋教育
2016-04-10 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
载入库文件有两个函数System.load和System.loadLibrary。

当使用System.load时,需要输入文件的全路径,例如:System.load(“/tmp/test.so”);

当使用System.loadlibrary时是在系统的library的目录中需找复合条件的库文件,可以使用
-Djava.library.path=[path]参数,来指定Java程序加载库文件的路径,或者将库文件(
*.so,*.dll)复制到include的默认路径,Linux一般是/usr/lib目录下,当然你可以编辑/etc/ld.so.conf.d/下的文件,设定自己的库查找路径ldconfig -v|grep xxx看看有没有你的动态库。

Linux还要注意,使用System.loadLibrary(name)方法其中参数内容与Windows有区别,
Linux中的的库文件名为libname.so,.dll。
在Windows中尽量使用Windows的C/C++编译器生成dll文件,否则会出现问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式