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