我一直在网上搜索试图找到我的问题的答案,但是对于像我这样的初学者来说,我所看到的任何地方似乎都有一个过于复杂的解决方案。我一直在做这个项目,现在才意识到我应该制作一个包,或者类似的东西。但问题是,在我开始涉足之前,我的程序运行良好,但现在它根本无法运行。我收到此错误:
Exception in thread "main" java.lang.NoClassDefFoundError: BubbleSort. class
Caused by: java.lang.ClassNotFoundException: BubbleSort.class
at java.net.URLClassLoader.findClass(URLClassLoader.java:434)
at java.lang.ClassLoader.loadClass(ClassLoader.java:672)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:358)
at ``java.lang.ClassLoader.loadClass(ClassLoader.java:638)
Could not find the main class: BubbleSort.class. Program will exit.
如果我没记错的话,这就是我的“路径”的样子。我通过远程连接连接到我学校的 Z: 驱动器,从那里我有一个名为 myFirstname_Lastname_A4 的文件夹,然后将我带到另一个名为 sortzz 的文件夹,我认为它应该只有我的源文件,但它也结束了每当我编译时,我的类文件就在那里。所以这就是我正在做的编译。
cd myFirstname_Lastname_A4/sortingzz
javac *.java
(工作正常,这是我在我的sortingzz文件夹中结束我的类文件的地方)
java *
(这是我得到错误的地方)
我很确定我只是试图错误地运行程序。在我开始处理我还没有准备好的东西之前,我曾经只是运行带有我的 main 函数的文件,就像这样
javac SortingImplementation.java
java SortingImplementation
这在大多数情况下工作得很好,但我开始无法从其他类调用某些类,所以当我发现我应该做打包和导入的东西时。
如果这是问题,我在每个源文件的第一行都有:包排序zz;
我正在像这样导入:
import sortingzz.*
;
这是正确的,对吧?
更新:
我决定放弃类路径并尝试打包所有内容,因为像往常一样,我收到的回复超出了我的想象,老实说,我认为没有必要。
在删除包并从所有内容中导入后,再次使用 javac *. 编译,这次它实际上编译了。但是,每当我尝试使用其中的主要内容 SortingImplementation 运行我的课程时,它都会告诉我
Could not find the main class: SortingImplementation. Program will exit.
我不明白,我现在正在查看 SortingImplementation.class 以及所有其他类和 java 文件,所以我不确定它在做什么。