如何将库添加到我的.jar文件中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将库添加到我的.jar文件中相关的知识,希望对你有一定的参考价值。

我有一个关于Netbeans的项目,可以使用opencv库。

我已经设置了项目属性>运行:-Djava.library.path="C:opencvuildjavax64"

如果我在NetBeans上运行该项目,它的工作原理。

但是,当我构建JAR文件并从cmd尝试java -Djava.library.path="C:opencvuildjavax64" -jar myjar.jar时,它会抛出

java.lang.NoClassDefFoundError:org / opencv / core / Mat

我想要制作我的罐子是什么?

编辑

在构建.jar的目录中,我创建了一个名为lib的目录,在里面我放了opencv-300.jar:如果我执行java -cp "lib/opencv-330.jar;myjar.jar" gui.Client它可以工作......有没有办法在不运行该命令的情况下执行应用程序?

答案

您可以通过两种方式加载本机库文件(.dll / Windows或.so / Linux):

1)通过提供完整路径加载文件:

System.load("my/full/path/opencv.dll");

2)如果您的本机文件位于Java库路径中:

System.loadLibrary("opencv");

请注意,在第二种情况下,您只需提供本机文件的名称(不带其扩展名)。

默认的Java库路径取决于操作系统:

在Windows上,它映射到PATH 在Linux上,它映射到LD_LIBRARY_PATH 在OS X上,它映射到DYLD_LIBRARY_PATH

如果要设置自己的Java库路径:

try {
        System.setProperty("java.library.path","YOUR/PATH");
        Field fieldSysPath = ClassLoader.class.getDeclaredField("sys_paths");
        fieldSysPath.setAccessible(true);
        fieldSysPath.set(null, null);
    } catch (Exception ex) {
        System.out.println("Failed to set Java Library Path: " + ex.getMessage);
    }

以上是关于如何将库添加到我的.jar文件中的主要内容,如果未能解决你的问题,请参考以下文章

我需要使用 javascript 将库添加到我的项目中

如何通过单击适配器类中代码的项目中的删除按钮来删除列表视图中的项目后重新加载片段?

手动将库添加到 Xcode 项目

Android/Eclipse:如何嵌入 .jar 文件?

如何将包目录结构添加到我的jar中

如何将库添加到 CMakeLists?