java 引入openCV,定时任务执行报错java.lang.UnsatisfiedLinkError: 'long org.opencv.imgcodecs

333 阅读1分钟

错误如下 image.png

前因

今天遇到一个奇怪的问题,测试类执行正常,SpringBoot 定时任务执行则报错,网上找了好多原因, 比较靠谱的是:

System.load 只加载一次,SpringBoot 定时任务会导致多个类加载,System.load 加载错误

解决

启动类如下使用好了,具体原因没搞懂

 public static void main(String[] args) {
//        System.out.println("java.library.path: "+System.getProperty("java.library.path"));
        // 确保 OpenCV 在应用启动时加载
        try {
            // Check if the native library is already loaded
            if (System.getProperty("opencv.library.loaded") == null) {
                System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
                System.setProperty("opencv.library.loaded", "true");
            }
        } catch (UnsatisfiedLinkError e) {
            e.printStackTrace();
        }
        SpringApplication.run(GlinkTokenApplication.class, args);
    }