一直都用Eclipse编译运行Java程序,为了更好地了解Java程序的编译运行过程,手动地编译Java应用程序,因为涉及到不同的包,所以遇到不少问题。比如Could not find or load main class …
记录下这篇文章希望后来的朋友不要踩坑。
下面,让我们来看一下Java程序的编译运行具体过程。
首先,在测试文件夹下,新建io和model两个目录。分别作为类Main和类Student的包。
在记事本编写类Student,我这里用的是NotePad++,用记事本是一个道理。
Student类中要添加包名model。这里就一个属性name,方便之后再main函数中测试输出。
在记事本中编写类Main,注意在开头写明包名,并导入Student类的包路径。
注意将上面的Student和Main的后缀名都改为”.java”。然后保存在对应的目录下。
在测试目录下打开命令行。(在对应目录下按住shift点鼠标右键,即可看到该选项)
在控制台输入
javac ./io/Main.java ./model/Student.java
对Main和Student进行编译。
打开model目录和io目录可以看到Student类和Main类分别在对应目录下生成了.class文件。说明编译成功。
在命令行下输入
java io.Main
可以看到输出“boy”,说明class文件可以正常运行。
这里说一下我之前遇到的问题,我在编译生成.class文件后,直接进入包含Main.class的目录下,用java命令运行包含主函数的Main.class,结果报错Could not find or load main class Main。
这里卡了好一会,参考了这篇文章才得到解决:
https://blog.csdn.net/weakfantasy/article/details/53379501
原因是