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.
Classpath là gì?
Classpath là một tham số quan trọng trong máy ảo Java, các trình biên dịch Java. Nó được dùng để chỉ vị trí của các calss và các package do người dùng thực hiện.
Hiểu đơn giản hơn, bạn có thể sử dụng Classpath để nói và hướng dẫn cho JVM hiểu được. Trình biên dịch Java biết tệp .class đang ở đâu trong hệ thống.
Hướng dẫn cách sửa lỗi chi tiết
Bạn có thể dễ dàng làm được việc đó bằng cách sử dụng lệnh sau:
java -classpath /myprograms/comiled HelloWorld
Lúc này, Java sẽ tự động thực hiện chương trình chạy đi tìm theo đường dẫn phù hợp để đến class HelloWorld bạn đang cần.
5. Sửa lỗi “Error: Could not find or load main class” do Classpath không chính xác
Đối với lỗi này, cách sửa cũng khá đơn giản như với trường hợp lỗi xuất hiện do đặt sai và gọi sai tên. Bạn chỉ cần tiến hành kiểm tra lại chính xác tên của từng thư mục, tệp trong đường dẫn để xem nó có tồn tại trong đường dẫn đó hay không.
Ví dụ, bạn muốn chạy
com.vietnix.HelloWorld
ở một thư mục khác, một tệp khác, bạn sẽ phải tìm hiểu xem cách làm nó như thế nào.
May mắn thay, nhà phát triển ngôn ngữ lập trình Java cũng đang nỗ lực từng ngày để tạo ra điều kiện thuận lợi trong quá trình lập trình, phát triển thư mục cho người dùng. Bạn chỉ cần sử dụng dấu chấm ‘.’ thay cho tên thư mục đó là sẽ đạt được điều mình mong muốn.
Thay vì sử dụng: java -classpath <tệp mẹ>/<tệp con>/ com.vietnix.HelloWorld
, bạn làm bằng cách thay dấu chấm vào và được kết quả sau: java -classpath ././ com.vietnix.HelloWorld
.
Vấn đề của bạn sẽ được giải quyết một cách đơn giản với cách thức trên, ít gặp lỗi hơn. Điều này giúp ích rất nhiều cho quá trình làm việc với Java đấy.
>> Xem thêm: Sửa lỗi hệ thống: java.lang.exception: xác thực chữ ký không thành công
Câu hỏi thường gặp
Hello World là gì?
Đây chỉ đơn giản là một dòng chữ Hello World và hầu hết các lập trình viên đang làm việc với bất kỳ ngôn ngữ nào đều sử dụng qua. Chương trình Hello World được phát triển lần đầu tiên bởi Brian Kernighan xuất bản trong cuốn sách The C Programming Language. Được biết đến từ năm 1978, nó vẫn được sử dụng rộng rãi đến ngày hôm nay.
Lỗi Error: Could not find or load main class có nghiêm trọng không?
Thực chất, lỗi này không quá nghiêm trọng trong lập trình với ngôn ngữ Java. Tuy nhiên, nó cần phải được khắc phục nhanh chóng để đảm bảo công việc thuận lợi. Nếu không, lập trình viên sẽ không thể chạy hay sử dụng chương trình của mình được.
Để triển khai các ứng dụng Java hiệu quả và tránh gặp lỗi, bạn có thể tham khảo sử dụng dịch vụ hosting/VPS của Vietnix.
Vietnix hiện đang cung cấp nhiều gói hosting/VPS tốc độ cao giúp bạn triển khai và chạy các ứng dụng Java ổn định, mượt mà. Không chỉ vậy, đội ngũ kỹ thuật giàu kinh nghiệm của Vietnix luôn túc trực 247, sẵn sàng hỗ trợ bạn trong trường hợp gặp lỗi hay có vấn đề cần giúp đỡ.
Lời kết
Như vậy, bạn đã hiểu hơn về lỗi Error: Could not find or load main class và cách để khắc phục nó. Hy vọng bài viết này của Vietnix hữu ích đối với bạn. Nếu còn bất kỳ điều gì băn khoăn, hãy liên hệ ngay với Vietnix để nhận được sự hỗ trợ từ các chuyên viên hàng đầu nhé.