「南小鸟」 2023-03-30 15:18 采纳率: 0%
浏览 135

springboot 加载dll动态库失败

springboot 加载dll动态库失败;求解。
异常提示:
java.lang.UnsatisfiedLinkError: 动态链接库(DLL)初始化例程失败。

代码:
ReadCardJna readCard = Native.load("readcard",ReadCardJna.class);
目前动态库文件放在程序根目录。

  • 写回答

1条回答 默认 最新

  • 专家-郭老师 Java领域新星创作者 2023-03-30 15:28
    关注

    1.dll文件路径不正确。需要确保dll文件在项目中正确的位置,并且在代码中引用的路径也是正确的。
    2.dll文件不是针对当前系统架构编译的。如果当前系统是64位,但是dll文件是32位编译的,那么就会加载失败。需要确保dll文件与当前系统架构匹配。
    确保下以上两点。还有可能你放的文件夹路径是除了管理员外不可以访问的

    public class LoadDLL {
        static {
            System.loadLibrary("mydll"); // 加载名为mydll的DLL文件
        }
        public native void myMethod(); // 定义一个名为myMethod的本地方法,该方法在DLL中实现(解释:这里指dll中有myMethod这个方法,具体你要看你dll里面的)
    
        public static void main(String[] args) {
            LoadDLL obj = new LoadDLL();
            obj.myMethod();  //这里调用你自己根据dll中的方法来。
        }
    }
    

    注意: 为了使Java能够加载DLL文件,您需要将DLL文件复制到Java库路径中。在Windows操作系统上,这通常是C:\Windows\System32或C:\Windows\SysWOW64。在Linux或macOS上,可以将DLL文件复制到/usr/lib或/usr/local/lib目录下。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月30日

悬赏问题

  • ¥15 在matlab中Application Compiler后的软件无法打开
  • ¥15 想问一下STM32创建工程模板时遇到得问题
  • ¥15 Fiddler抓包443
  • ¥20 Qt Quick Android 项目报错及显示问题
  • ¥15 而且都没有 OpenCVConfig.cmake文件我是不是需要安装opencv,如何解决?
  • ¥15 oracleBIEE analytics
  • ¥15 H.264选择性加密例程
  • ¥50 windows的SFTP服务器如何能批量同步用户信息?
  • ¥15 centos7.9升级python3.0的问题
  • ¥15 安装CentOS6时卡住