Computer >> Máy Tính >  >> Lập trình >> Java

Cách giải quyết Không thể tìm thấy hoặc tải gói lớp chính trong Java?

Khi bạn viết một chương trình Java, bạn cần phải biên dịch nó bằng lệnh javac, điều này sẽ hiển thị cho bạn các lỗi thời gian biên dịch đã xảy ra (nếu có).

Sau khi bạn giải quyết chúng và biên dịch thành công chương trình của bạn hoàn toàn, một tệp thực thi có cùng tên với tên lớp của bạn sẽ được tạo trong thư mục hiện tại của bạn, với .class phần mở rộng.

Sau đó, bạn cần thực thi nó bằng cách sử dụng lệnh java như -

java class_name

Trong khi thực thi, khi JVM không tìm thấy tệp .class có tên được chỉ định thì lỗi thời gian chạy xảy ra thông báo lỗi "Không thể tìm thấy hoặc tải lớp chính" là -

D:\sample>java Example
Error: Could not find or load main class Example
Caused by: java.lang.ClassNotFoundException: Example

Giải pháp

Để tránh lỗi này, bạn cần chỉ định tên tuyệt đối (bao gồm các gói) của tệp .class (chỉ tên) trong thư mục hiện tại.

Sau đây là các trường hợp mà lỗi này có thể xảy ra -

Tên lớp sai - Bạn có thể đã chỉ định tên lớp sai.

class Example {
   public static void main(String args[]){
      System.out.println("This is an example class");
   }
}

Lỗi

D:\>javac Example.java
D:\>java Exmple
Error: Could not find or load main class Exmple
Caused by: java.lang.ClassNotFoundException: Exmple

Giải pháp - Ở đây tên lớp bị sai chính tả, chúng ta cần sửa lại.

D:\>javac Example.java
D:\>java Example
This is an example class

Trường hợp sai - Bạn cần chỉ định tên của lớp có cùng trường hợp Ví dụ.java khác với example.java.

class Example {
   public static void main(String args[]){
      System.out.println("This is an example class");
   }
}

Lỗi

D:\>java EXAMPLE
Error: Could not find or load main class EXAMPLE
Caused by: java.lang.NoClassDefFoundError: Example (wrong name: EXAMPLE)

Giải pháp - Trong trường hợp này, tên lớp bị sai, nó nên được trang trí.

D:\>javac Example.java
D:\>java Example
This is an example class

Gói sai - Bạn có thể đã tạo tệp .class trong một gói và cố gắng thực thi mà không có tên gói hoặc tên gói sai.

package sample;
class Example {
   public static void main(String args[]){
      System.out.println("This is an example class");
   }
}

Lỗi

D:\>javac -d . Example.java
D:\>java samp.Example
Error: Could not find or load main class samp.Example
Caused by: java.lang.ClassNotFoundException: samp.Example

Giải pháp - Trong trường hợp này, chúng ta đã đề cập đến tên của gói sai Trong khi thực thi, chúng ta cần chỉ định đúng tên gói mà tệp .class tồn tại dưới dạng -

D:\>javac -d . Example.java
D:\>java sample.Example
This is an example class

Bao gồm phần mở rộng .class - Trong khi thực thi một tệp, không cần phải đưa phần mở rộng .class vào chương trình của bạn, bạn chỉ cần chỉ định tên của tệp lớp.

Lỗi

D:\sample>java Example.class
Error: Could not find or load main class Example.class
Caused by: java.lang.ClassNotFoundException: Example.class

Giải pháp - Phần mở rộng .class không bắt buộc khi thực hiện chương trình.

D:\sample>java Example
This is an example class