Khi sử dụng ngôn ngữ Java để lập trình, không ít người mệt mỏi với lỗi Error: Could not find or load main class khiến công việc bị ngưng lại một thời gian dài. Đặc biệt, lỗi này càng trở nên nghiêm trọng với những người mới, chưa thực sự quen với công việc và cách giải quyết sự cố. Trong bài viết này, Vietnix sẽ giúp bạn tìm hiểu cách khắc phục lỗi này cơ bản nhất.
Nguyên nhân gây ra lỗi Error: Could not find or load main class
Lỗi Error: Could not find or load main class xảy ra khi sử dụng lệnh Java trong dấu nhắc lệnh để khởi chạy chương trình Java. Nghĩa là công cụ Java tìm nạp lớp để thực thi không thành công, các Java command không thể locate lớp tại đúng thư mục như mong muốn.
Trong một số trường hợp, người dùng sẽ phải thêm correct file path, đồng thời trỏ thiết bị đầu cuối Java đến một vị trí chính xác. Vì bạn đang thực hiện lệnh từ đầu, cuối dòng lệnh và máy tính không tìm được lớp ở đâu, không biết nó nằm ở đâu. Đây không phải vấn đề đối với các IDE được nhắm mục tiêu, vì bản chất IDE giữ một con trỏ tới thư mục làm việc hiện tại.
Dưới đây là 3 lý do chính dẫn tới tình trạng này:
- Đặt tên sai, gọi tên sau.
- Package bị sai.
- Classpath không chính xác/ đường dẫn không chính xác.
Cách sửa lỗi Error: Could not find or load main class
Dưới đây, hãy cùng Vietnix tìm hiểu về cách sửa lỗi này trong những trường hợp thường gặp nhất nhé.
1. Lỗi “Error: Could not find or load main class” do đặt tên sai và gọi sai tên
Ví dụ giúp bạn hiểu hơn về lỗi đặt sai, gọi sai tên
Đây là một trong những lỗi phổ biến, rất nhiều người gặp phải khi lập trình. Vì ngôn ngữ Java nhận biết chữ in hoa, chữ in thường.
Sau khi bạn có được file .class, người dùng sẽ chạy chương trình bằng lệnh sau: java <.class tên file>
Sau khi áp dụng vào chương trình mẫu, chúng ta có kết quả sau:
$ java helloworld Error: Cloud not find or load main class helloworld
Cách khắc phục lỗi
Bạn có thể thấy, dòng lỗi “Error: Could not find or load main class helloworld” hiện lên vì những lý do:
- Tệp .class có tên là HelloWord chứ không phải helloword. Bạn phải gõ chính xác tên của nó HelloWorld. Chỉ khi đó chương trình của bạn mới có thể sử dụng được.
- Tương tự, thay vì gọi HelloWorld và bạn gọi HeloWorld – thiếu chữ I, hay HelloWord – thiếu chứ L, chương trình cũng sẽ gặp lỗi tương tự.
Đôi khi, bạn sẽ sử dụng lệnh như sau để khởi chạy chương trình:
$ java HelloWorld.class Error: Cloud not find or load main class HelloWorld.class
Lúc này, bạn đã gọi luôn cả phần mở rộng .class của HelloWorld. Tuy nhiên, điều này thực sự là không cần thiết và dễ dàng gây ra lỗi Error: Could not find or load main class.
2. Cách sửa lỗi “Error: Could not find or load main class” do đặt và gọi sai tên
Với những thông tin trên, bạn có thể thấy cách sửa lỗi này rất đơn giản. Việc bạn cần làm chỉ là kiểm tra chính xác tên gọi của .class đã tạo ra ở trên. Sau đó, trình biên dịch cũng tự động tạo ra .class có cùng tên với class bạn đã đặt trong chương trình.
Bạn thử lại với đúng cách viết hoa, đúng chính tả và không sử dụng thêm đuôi mở rộng. Chương trình của bạn sẽ không báo lỗi nữa.
$ java HelloWorld Hello world!
3. Tìm hiểu về lỗi Error: Could not find or load main class do Package bị sai
Tìm hiểu ví dụ về lỗi này
Trong quá trình sử dụng Java, bạn có thể thực hiện tạo ra nhiều class tương tự nhau, sau đó gói gọn chúng trong một package. Và chúng ta sẽ chuyển class HelloWorld vào bên trong gói com.vietnix tương tự như hình ảnh sau:
packae com.vietnix: public class HelloWorld { public static void main(String[] args) { System.out.println(“Hello world!”); } }
Lúc này, bạn sẽ cần thực hiện biên dịch sau đó tiến hành chạy chương trình HelloWorld và kết quả trả lại của Java như sau:
$ java Helloworld Error: Cloud not find or load main class Helloworld
Tiến hành sửa lỗi “Error: Could not find or load main class” trong trường hợp Package bị sai
Khi quá trình nhập của bạn không sai và viết đúng chính tả nhưng vẫn không thể chạy được. Nguyên nhân ở đây là vì sao? Lý do đơn giản nhất để trả lời là sau:
Khi bạn đưa class vào trong package, bạn sẽ phải gọi đầy đủ tên của chúng để mang lại kết quả. Vì vậy, trong trường hợp đang nói đến bạn sẽ phải gọi tên của package là: com.vietnix.HelloWorld.
Với cách làm đơn giản này, bạn sẽ tạo ra được một thư mục cây với dạng và tên gọi như sau: “Error: Could not find or load main class”. Bạn cần phải đảm bảo rằng các tệp trong thư mục cây này tồn tại và bạn có thể thực hiện được việc chạy chương trình một cách hiệu quả.
$ java com.vietnix.HelloWorld Hello world!
4. Tìm hiểu về lỗi do Classpath không chính xác/ đường dẫn không chính xác
Đây cũng là một lỗi khá thường gặp khi làm việc. Và dưới đây, Vietnix sẽ giúp bạn tìm hiểu cách khắc phục lỗi nhanh chóng và hiệu quả nhất.