Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วิธีแก้ Could not find or load main class ใน Java

Error นี้เกิดตอน Runtime (java command) เมื่อ JVM หา Main Class ไม่เจอ สาเหตุหลัก 4 ข้อ

สาเหตุและวิธีแก้

1. ชื่อ Class ผิด (Typo)

D:\> javac Example.java
D:\> java Exmple  # Typo: Exmple แทน Example
Error: Could not find or load main class Exmple

แก้: ใช้ชื่อ Class ให้ถูกต้อง java Example

2. Case Sensitivity ผิด

D:\> java EXAMPLE  # ตัวพิมพ์ใหญ่ทั้งหมด
Error: Could not find or load main class EXAMPLE
Caused by: java.lang.NoClassDefFoundError: Example (wrong name: EXAMPLE)

แก้: ใช้ Case ให้ตรงกับ Class Declaration java Example

3. Package Name ผิด / ไม่ระบุ Package

// Example.java
package sample;
public class Example { ... }
D:\> javac -d . Example.java
D:\> java samp.Example  # Package ผิด (samp vs sample)
Error: Could not find or load main class samp.Example

แก้: ใช้ Fully Qualified Name java sample.Example และรันจาก Root Directory (ที่มีโฟลเดอร์ sample)

4. ใส่ .class Extension (ห้าม)

D:\> java Example.class
Error: Could not find or load main class Example.class

แก้: ไม่ต้องใส่ .class -> java Example

Checklist แก้ปัญหา

  1. Compile เรียบร้อยแล้ว? (javac ไม่มี Error)
  2. รันจาก Directory ที่ถูกต้อง? (Root ของ Package Structure)
  3. ใช้ชื่อ Class ให้ถูกต้อง? (Case-Sensitive, No .class)
  4. ถ้ามี Package ใช้ Fully Qualified Name? (package.Class)
  5. Classpath ครบ? (-cp . หรือ -cp jars/*)

ตัวอย่างคำสั่งที่ถูกต้อง

# Project Structure:
# /project
#   /com/example/Main.class
#   /lib/dependency.jar

cd /project
java -cp ".;lib/*" com.example.Main  # Windows
java -cp ".:lib/*" com.example.Main  # Linux/Mac

สรุป

Error "Could not find or load main class" = JVM หา .class ไม่เจอ ตรวจสอบ: ชื่อ Class, Case, Package, Classpath, Directory ปัจจุบัน, ไม่ใส่ .class