java - 本地存在 Maven 依赖项时出现 NoClassDefFoundError

标签 java eclipse maven intellij-idea pom.xml

我是 Maven 项目的新手。我正在对开源 Maven 项目之一进行更改。我在向项目添加库时遇到问题。到目前为止我已经做到了:-

  1. 我将名为 jni4net.j-0.8.8.0.jar 的库添加到项目的资源文件夹中。
  2. 我右键单击了该 jar(在 Intellij 中),然后单击“添加为库”。
  3. 然后在 pom.xml 中添加:-

    <dependency>
        <groupId>jar.0.8.8.0.jni4net</groupId>
        <artifactId>jar.0.8.8.0.jni4net</artifactId>
        <version>0.8.8.0</version>
        <scope>system</scope>
        <systemPath>${basedir}/src/main/resources/jni4net.j-
         0.8.8.0.jar</systemPath>
    </dependency>
    

但是当我构建这个项目(构建成功,测试用例正在运行)并使用它时,它会抛出以下错误:-

java.lang.NoClassDefFoundError: net/sf/jni4net/Bridge 

请帮我解决一下。我是maven 和pom 的新手。我看过各种答案,但没有得到正确的答案。 PS - 我将 groupId 和 artifactID 命名为 jar 文件的反向

最佳答案

这不是添加该依赖项的正确方法。

您所需要的是:

<dependency>
    <groupId>net.sf.jni4net</groupId>
    <artifactId>jni4net.j</artifactId>
    <version>0.8.8.0</version>
</dependency>

构建时将从 Maven Central 检索依赖项。

使用<systemPath>...</systemPath>强烈建议不要这样做,因为它通常会将您的项目与本地环境联系起来。

关于java - 本地存在 Maven 依赖项时出现 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44513188/

相关文章:

Java实现加权图?

java - 如何在javafx中更改所有 subview 文本大小

java - 缺少 Artifact org.seleniumhq.selenium :selenium-java:jar:3. 14.59

java - 是否可以让 Maven "WAR"pom.xml 将我的类打包到 JAR 中并将 JAR 放入/WEB-INF/lib 文件夹中?

c - 如何使用Arduino的串口打印

模型类上反射 toString 中的 java.lang.ClassCastException : [Z cannot be cast to [Ljava. lang.String

java - Java中基于权重的对象匹配(不是内存中对象的实际权重)

java - 为什么没有 ArrayList(T[] t) 构造函数?

android - 如何在 Eclipse(ADT Bundle)中使用 Sony Xperia Z 进行 USB 调试

java - 如何定义音频文件的路径