最近做的java项目涉及到对接led屏,踩了很多的坑,下面下几个困扰了比较多时间的问题
第一个问题:加载不到类库
java.lang.UnsatisfiedLinkError: Unable to load library
这个我遇到了两种情况,一种是我的路径没写对,建议大家写全路径,我是放在dll包下的,这是我的写法
String m_strUserPath = System.getProperty("user.dir");
DllLibrary instance= (DllLibrary) Native.loadLibrary(m_strUserPath + "\\dll\\EQ2008_Dll",
DllLibrary.class);
如果写了全路径还是不对,那就可能是你的java位数跟你加载的dll位数不对了,先查看下自己的java位数
我的是64位,接着看一下加载的dll位数,用文本的方式打开你的dll文件,我们会看到一堆的乱码,不要急,注意看第二行,找到
PE 看PE后面的是 d 还是L,如果是L那么就是32位的,这样的话你的64位的jna是加载不到的,而如果是d,就是64位的,例如