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

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日