本文目录一览:
- 1、如何解决java调dll报Unable to load library的错误
- 2、带包名java类运行时调用dll报错,dll能加载,但是执行dll中的方法时报错!求解?
- 3、Java调用DLL文件,第一次时正常可以使用,第二次的时候报错“此文件已在另一个中加载”
如何解决java调dll报Unable to load library的错误
解决java调dll报Unable to load library的错误可以尝试以下方法:
载入库文件有两个函数,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,Windows为name.dll。
在Windows中尽量使用Windows的C/C++编译器生成dll文件,否则会出现问题。
不过具体问题还要具体对待!
带包名java类运行时调用dll报错,dll能加载,但是执行dll中的方法时报错!求解?
嗯 之前也遇到过你这样的问题
第一种方案呢,就是根据源码,把它原来加载dll文件那块修改一下 具体请参见 System.load 和 System.loadLibrary详解
第二种方案,也不太推荐,因为我们做的项目,到客户那边实施的时候太麻烦,就是将dll文件考到java 的path下 例如我的 就拷贝到C:\Program Files (x86)\Java\jre7\bin 这个路径下,个人推荐第一种方案
Java调用DLL文件,第一次时正常可以使用,第二次的时候报错“此文件已在另一个中加载”
1.0将调用的.Java类文件打包成.jar文件
2.0将打包好的.jar文件Tomact的lib文件夹下,这样整个项目中调用的dll文件只被调用一次