【发布时间】: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应该运行你的代码