【问题标题】:Executable jar with openCV lib (Eclipse, Mac)带有 openCV 库的可执行 jar (Eclipse, Mac)
【发布时间】:2015-08-24 22:38:55
【问题描述】:

我有同样的问题,就像下面这个帖子一样。但答案对我不起作用。 我希望这样的链接没问题。

How to package opencv +java in a jar

我正在像这样加载我的 opencv 库:

System.loadLibrary(Core.NATIVE_LIBRARY_NAME); // for opencv

在 Eclipse 中,我已经链接了 opencv 的 nativ 库。 在我尝试导出 jar 文件之前一切正常。

可能是因为本机库没有被导出。 在我的 Mac 上,我有本地库: /Java 库/opencv/opencv-3.0.0/build/lib

有谁知道如何更改上面链接中的代码,以便同时导出本机库?

谢谢

【问题讨论】:

    标签: java eclipse macos opencv executable-jar


    【解决方案1】:

    而不是使用此代码加载库:

    System.loadLibrary(Core.NATIVE_LIBRARY_NAME); // for opencv
    

    我会用这个函数来做:

        private static void loadOpenCVLibrary() {
            //all opencv libs must be copyed to OpenCV_lib in the project workspace
            File folder = new File("OpenCV_lib/");
            File[] listOfFiles = folder.listFiles(); 
    
        for (int i = 0; i < listOfFiles.length; i++) {
            if (listOfFiles[i].isFile() && listOfFiles[i].getName().endsWith(".dylib")) {
                File lib = new File("OpenCV_lib/" + listOfFiles[i].getName());
                System.load(lib.getAbsoluteFile().toString());
            }
        }
    }
    

    “.../opencv-3.0.0/build/lib”中的 openCV 库被复制到项目工作区中的文件夹“OpenCV_lib”中,以获得本地库的相对路径。

    运行导出的 jar 文件。导出的 jar 文件和包含库 (OpenCV_lib) 的文件夹必须在同一目录中。

    【讨论】:

    • 你可以使用下面的方法来加载 OpenCV 原生库 System.load("/usr/local/Cellar/opencv3/3.1.0_3/share/OpenCV/java/libopencv_java310.so");
    猜你喜欢
    • 1970-01-01
    • 2015-08-07
    • 2020-05-16
    • 2011-05-29
    • 2014-12-31
    • 2013-12-19
    • 1970-01-01
    • 2021-03-25
    • 1970-01-01
    相关资源
    最近更新 更多