gpt4 book ai didi

java - 编译成功但出现 NoClassDefFounderror

转载 作者:行者123 更新时间:2023-11-29 05:57:05 25 4
gpt4 key购买 nike

我是一名正在学习编码的药学专业学生,如果我没有回答这个问题,我深表歉意。

我在 NetBeans 和 Eclipse 中编写了一些 java 源代码。代码在两个 IDE 中都运行良好,但是当我将所有 .java 文件移动到 UNIX 环境时,我成功编译了代码,但命令行告诉我它找不到位于同一 jar 中的类我编译了。我在编译时收到警告,但我认为这不会影响代码的运行。我搜索了又搜索,似乎找不到答案。这是我的命令行代码(有我的程序名称等):

[jknights@u2:~]$ cd chorus_jk

[jknights@u2:~/chorus_jk]$ ls
Chorus_JK.java EntropyNormal_JK.java Main_JK.java
colt.jar EstimateParzen_JK.java RA_reformatted_forCHORUS_JK.txt
Combination_JK.java LIST_JK.java

[jknights@u2:~/chorus_jk]$ javac -cp colt.jar ./*.java -Xlint:unchecked
.
. (I edited out the 100 warnings as they refer to unchecked items)
.

100 warnings

[jknights@u2:~/chorus_jk]$ jar cfe ChorusJK_RA.jar Main_JK ./*.class

[jknights@u2:~/chorus_jk]$ java -jar ChorusJK_RA.jar
89
317504
Exception in thread "main" java.lang.NoClassDefFoundError: cern/colt/matrix/DoubleMatrix2D
at Chorus_JK.init(Chorus_JK.java:24)
at Main_JK.main(Main_JK.java:23)
Caused by: java.lang.ClassNotFoundException: cern.colt.matrix.DoubleMatrix2D
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
... 2 more

“89”和“317504”是读入文件的摘要输出,因此看起来编译成功;但是,当程序进入计算部分时,它会给我 Exception in thread "main"java.lang.NoClassDefFoundError: cern/colt/matrix/DoubleMatrix2D 错误。非常感谢您的帮助!

最佳答案

您需要在运行应用程序时将 colt.jar 添加到类路径,因为 DoubleMatrix2D 可能在该 jar 中。尝试

 java -cp colt.jar -jar ChorusJK_RA.jar

它在 IDE 中工作,因为它们默认将 jar 添加到类路径。

关于java - 编译成功但出现 NoClassDefFounderror,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11650894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com