【问题标题】:Maven project fail to call jar fileMaven项目调用jar文件失败
【发布时间】:2016-02-22 16:27:41
【问题描述】:

我想在 maven 项目中使用OpenCV 代码,opencv-310.jar 创建并运行良好。

按照this page的方式调用本地jar文件,我安装jar

mvn install:install-file 
-Dfile=/home/administrator/NetBeansProjects/OpenCV_Maven/opencv-310.jar 
-DgroupId=localLibrary 
-DartifactId=OpenCV -Dversion=3.1.0 -Dpackaging=jar 
-DgeneratePom=true

并将POM 设为以下代码

<dependencies>
    <dependency>
        <groupId>localLibrary</groupId>
        <artifactId>OpenCV</artifactId>
        <version>3.1.0</version>
    </dependency>
</dependencies>    

然后运行Face detection application 示例代码。如下异常,发生在调用Core.NATIVE_LIBRARY_NAME的行,似乎找不到jar。

Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java310 in java.library.path

我不知道怎么解决,我用destop应用练习库时出现了同样的问题,但不能用同样的方法解决。(添加VM选项-Djava.library.path

顺便说一句,我不使用同时使用opencv-310.jar 创建的libopencv_java310.so。我不确定是否需要,如果必须添加到 maven 项目中,请告诉我如何使用它,我从未使用过这种文件。

感谢您的帮助。

【问题讨论】:

  • “我不确定是否有必要”。那么你得到的运行时错误似乎表明它是。该 Java 库可能只是本机代码调用的入口点(通过 JNI),因此需要在 java.library.path 中添加本机库。

标签: java maven jar


【解决方案1】:

正如@Tome 所说,原生库导致的问题错过了。

所以我很喜欢,

public static void main(String[] args) {
System.out.println("Hello, OpenCV");

// Load the native library.
//System.loadLibrary(Core.NATIVE_LIBRARY_NAME); instead by below code
String path = "/home/administrator/OpenCV_jar/libopencv_java310.so";
System.load(path);
new DetectFaceDemo().run();
}

【讨论】:

    猜你喜欢
    • 2017-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 2021-04-07
    相关资源
    最近更新 更多