【问题标题】:java.lang.NoClassDefFoundError when I add external JARs using Eclipse IDEjava.lang.NoClassDefFoundError 当我使用 Eclipse IDE 添加外部 JAR 时
【发布时间】:2021-10-17 20:22:55
【问题描述】:

我是 Java 和 Eclipse 的新手。我尝试添加外部 jar 文件并在其中导入类,但失败了。

在jar文件中导入类,新建实例,调用对象函数的代码如下:

import cn.Hello;

public class Test {
    public static void main(String[] args) {
        Hello h = new Hello();
        h.hello();
    }
}

Eclipse IDE 不会抛出任何错误。但是当我用 Eclipse 运行时,它抛出了:

Exception in thread "main" java.lang.NoClassDefFoundError: cn/Hello
    at Test.main(Test.java:5)
Caused by: java.lang.ClassNotFoundException: cn.Hello
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 1 more

而我在Eclipse上搭建的项目是这样的:

你能帮忙解决一下吗?

附言

❯ find .
.
./.DS_Store
./bin
./bin/Test.class
./.classpath
./.gitignore
./.project
./src
./src/Test.java

❯ jar tf /Users/fxb/Desktop/test.jar
META-INF/MANIFEST.MF
cn/Hello.class
cn/edu/Hello.class

【问题讨论】:

  • 你使用的是什么操作系统?
  • Eclipse 无法访问test.jar。它没有权限。
  • @g00se 我使用的是 Mac OS。
  • @RomanC 我可以授予它访问test.jar的权限吗?
  • java -cp /Users/fxb/Desktop/Java-Programming/Codes/bin:/Users/fxb/Desktop/test.jar Test 应该运行你的代码

标签: java eclipse jar


【解决方案1】:

实际上我发现我将外部 jar 文件添加到模块路径而不是类路径。所以 Eclipse IDE 没有抛出任何错误,但在运行时 Java 抛出了java.lang.NoClassDefFoundError。在我将 jar 添加到类路径后,就可以了。它位于:右键单击项目 -> Properties -> Java Build Path -> Libraries -> Classpath -> Add external JARs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 2021-01-15
    • 2013-09-23
    • 2015-12-22
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    相关资源
    最近更新 更多