繁体   English   中英

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

[英]How add libraries to my .jar file

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

我已在项目的属性>运行上设置: -Djava.library.path="C:\\opencv\\build\\java\\x64"

如果我在NetBeans上运行该项目,那么它将起作用。

但是,当我构建JAR文件并尝试从cmd到java -Djava.library.path="C:\\opencv\\build\\java\\x64" -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);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM