我是一名制药科学专业的学生,我边走边学,所以如果这个问题的答案没有让我知道,我深表歉意。
我在 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”是读入文件的摘要输出,因此编译成功;但是,当程序进入计算部分时,它给了我线程“main”中的异常 java.lang.NoClassDefFoundError: cern/colt/matrix/DoubleMatrix2D 错误。非常感谢您的帮助!