java借助JNA调用DLL错误汇总

博客 分享
0 1013
优雅殿下
优雅殿下 2020-09-16 16:43:51
悬赏:0 积分 收藏

1. java.lang.UnsatisfiedLinkError: Unable to load library 'xxx': Native  library

找不到dll文件所致,dll文件能能否成功调用取决于jdk位数, dll文件位数和jdk位数要一致,位数不一致的话会报错

"Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'testx64': 找不到指定的模块。"

2. java.lang.UnsatisfiedLinkError: %1 不是有效的 Win32 应用程序

    32位的dll,jdk是64位是报错,将64位jdk 换成 32位jdk后不再报该错误;

3. java.lang.Error: Invalid memory access

未成功导入dll所致,改为根据绝对路径导入后解决问题


A INSTANCE = (A) Native.loadLibrary("xxx.dll", A.class);

改为:


String path= StringUtils.substring(A.class.getResource("/").getPath()+"xxx.dll", 1);A INSTANCE = (A) Native.loadLibrary(path, A.class);


回帖
    优雅殿下

    优雅殿下 (王者 段位)

    2012 积分 (2)粉丝 (47)源码

    小小码农,大大世界

     

    温馨提示

    亦奇源码

    最新会员