java加载本地文件(dll、so)时,经常会出现java.lang.UnsatisfiedLinkError: Unable to load library这种错误,经过实践后总结分析,主要是3种原因:
1. 本地文件没有放置到classpath;
2. 本地文件版本与jdk版本不一致,如dll、so为32位,jdk为64位;
3. 本地文件依赖的其它库不存在,如so依赖的其它so不存在,则so本身就不能运行,自然会报错;
1. 判断dll是否依赖其它dll,可以使用工具或向系统中注册dll,能注册成功即是dll依赖正常。
2. 判断so是否依赖其它so,使用ldd命令,如果有缺失,会出现 xx.so not found字样。