EQ一卡通踩过的坑,解决加载不到动态库,输出数据到led屏乱码问题

在Java项目中对接LED屏时遇到两个主要问题:1. 加载DLL库失败,原因是路径不正确或DLL与Java位数不匹配。解决方案包括使用全路径和确保DLL与Java位数一致。2. 输出到LED屏的中文乱码,通过设置JNA调用的编码解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近做的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位的,例如

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值