命令行java 找不到或无法加载主类
最近在复习java的基础知识,其中有个练习是在终端使用命令行来编译和运行java程序,大致的步骤如下:
1.新建HelloWold.java文件
public class HelloWorld{
public static void main(String[] args){
System.out.println("java");
}
}
2.在终端输入 javac HelloWorld.java 成功生成HelloWorld.class文件。
3.在终端输入 java HelloWorld 执行.class文件。
步骤1、2顺利完成,但是在执行第三步时遇到了 提示找不到或无法加载主类 的问题,这个问题折磨了我好久。现在总结下出现这个问题的原因:
1.CLASSPATH 没有配置当前目录即符号‘.’,这一原因解决方案可参考java环境配置。
2.java HelloWorld.class,其实我刚开始报错的原因就是这个(无奈,一直没发现,以为是其他错误造成的)。。java命令 后面直接跟主类名就可以了,不需要加.class 。
3.如果在主类里声明了包,如下例:
package project; //声明了包
public class HelloWorld{
public static void main(String[] args){
System.out.println("java");
}
}
那么在编译的时候,就需要
javac -d . HelloWorld.java //-d 指定放置生成的类文件的位置
java project.HelloWorld //加上包的全名
总结:希望这篇博客能帮初学者解决问题,虽然是一个小小的练习,但是亲自动手去做过,踩过坑后,还是能从中学到很多的。比如我解决这个问题的时候,就配置了N遍环境变量,以后再也不会忘了- - ,这两行命令,其实包含了很多java基础知识,后面还需要补一补这方面的知识,共勉。