
java报错“main class test could not be found or loaded”通常源于两个关键错误:源文件名与public类名不一致,以及未执行javac编译就直接用java命令运行源码。
在Java中,public类的名称必须严格等于其所在源文件的文件名(包括大小写)。观察你的代码:
public class Main { // ← 公共类名为 Main
public static void main(String[] args) {
// ...
}
}该类声明为 public class Main,因此源文件必须命名为 Main.java,而非 Test.java。若你当前文件名为 Test.java,JVM在加载时会查找 Test.class 中的 public class Test,但实际只存在 Main.class,从而触发 Main class Test could not be found or loaded 错误。
此外,Java是编译型语言,.java 源文件不能被JVM直接执行。必须先通过 javac 编译器生成字节码文件(.class),再由 java 命令加载运行。常见误区是跳过编译,直接执行:
# ❌ 错误:试图直接运行 .java 源文件(JVM不支持) java -cp . Test # ✅ 正确流程: javac Main.java # 编译 → 生成 Main.class java -cp . Main # 运行 → JVM 加载并执行 Main.class
⚠️ 注意事项:若修改了类名(如改为 public class Test),务必同步重命名文件为 Test.java,并重新编译;确保当前命令行工作目录与 .java 和生成的 .class 文件所在目录一致;-cp . 表示将当前目录(.)加入类路径,这是必要的,尤其当类不在默认包或有依赖时;main 方法签名必须严格为 public static void main(String[] args),且所属类需为 public(若在默认包中)或正确声明。
✅ 完整正确操作步骤如下:
立即学习“Java免费学习笔记(深入)”;
- 将代码保存为 Main.java(确保文件名与 public class Main 一致);
- 打开命令提示符,进入该文件所在目录;
- 编译:javac Main.java(无输出即成功,生成 Main.class);
- 运行:java -cp . Main。
执行后,程序将读取同目录下的 npcData.csv 文件,并按分号分割每行内容,输出类似 nonCritSpecialNpc['xxx'] = true; 的语句——一切前提,是先完成编译、再确保类名与文件名统一。










