java.lang.NoClassDefFoundError 当我使用 Eclipse 添加外部 JAR IDE

java.lang.NoClassDefFoundError when I add external JARs using Eclipse IDE

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

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

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上搭建的项目是这样的:

能否请您帮忙解决一下?

p.s

❯ 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

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