此文首发于我的个人博客:java报错-找不到或无法加载主类(Error Could not find or load main class) — zhang0peter的个人博客
比如说test.java
package test;public class test{public static void main(String[] args) {System.out.println("Hello Word !");}}
运行java文件需要先编译:
javac test.java
然后运行:
java test
有时在运行时,程序会报错:**找不到或无法加载主类(Error: Could not find or load main class)**这个问题有以下一些原因:
CLASSPATH配置问题
CLASSPATH也就是Java运行时的环境变量,里面需要有个点,也就是".",表示当前路径。
Windows下在cmd中使用命令查看环境变量的设置
echo %PATH%
Linux下使用如下命令查看环境变量的设置
echo $PATH
package问题
大部分Java代码的开头都带有package的声明,这就导致编译完成后类的名字是自带package声明的。
解决方法1:删除package声明
只要删除了package声明,就没有这个问题了,麻烦的是如果文件很多,那么要删除很多文件。
解决方法2:指定包名
运行的时候指定包名即可运行,需要注意的是指定的包名是文件夹目录
比如说:
javac test.java -d .java test.test
这里的编译参数"-d ."意思是根据包名新建一个目录用于存放编译后的结果,编译完成后本目录下回多出一个文件夹test(文件夹名由包名决定),运行时指定包名即可运行。