java - maven java.lang.NoClassDefFoundError : nu/pattern/OpenCV error

标签 java maven opencv intellij-idea

我正在使用https://github.com/patternconsulting/opencvopencv 3.2.0 包含在我的 ma​​ven java 项目中。

我面临的问题是,当我使用 mvn install 生成 jar 文件,然后运行 ​​jar 文件 java -jar app.jar 我得到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: nu/pattern/OpenCV
    at com.example.Application.<clinit>(Application.java:21)
Caused by: java.lang.ClassNotFoundException: nu.pattern.OpenCV
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

下面是我的 pom.xml 文件的摘录

       <dependency>
            <groupId>org.openpnp</groupId>
            <artifactId>opencv</artifactId>
            <version>3.2.0-1</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.0.2</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                            <mainClass>com.example.Application</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

下面是我的类的摘录,其中包含 main 方法:

public class Application {

    static {
        OpenCV.loadShared();
    }


    public Application() throws Exception {
      // some code here
    }

    public static void main(String[] args) {
            new Application();
    }

知道什么可能导致这种情况发生以及如何解决它吗?

谢谢

最佳答案

依赖项不会自动添加到您的 jar 文件中,只会添加到您自己的代码中。

您有多种选择,因为您不是第一个遇到此问题的人。以您当前的技能水平,我建议您考虑创建一个 uber-jar (这样您的所有依赖项也都将包含在您的 jar 文件中)。

看看https://stackoverflow.com/a/1834905/53897其中详细说明了如何从这里开始。

关于java - maven java.lang.NoClassDefFoundError : nu/pattern/OpenCV error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42204007/

相关文章:

java - 设置 X-Content-Type-Options 响应 header 会损坏 PNG 文件

maven - 将 Maven 程序集 ZIP 部署到 nexus

android - 找不到android :android:jar:6. 0_r1 失败

python - 尝试更改 RTSP 视频流的分辨率

python - 如何为每个元素获取mxn矩阵中最接近的r个元素

eclipse - opencv 在 ubuntu 中在哪里安装它的库

java - Android:可点击 TextView 中的 ClickableSpan

java - Java 队列的多线程处理

java - Sonatype emma-maven-plugin 和 emma4it-maven-plugin 的文档?

java - 计算行数、单词数、字符数和前十个单词?