Đầu tiên: Tôi nhận thấy rằng vấn đề này nên khá đơn giản và rất nhiều người dường như đã trải nghiệm nó. Tuy nhiên, có vẻ như vấn đề của tôi có thể là hơi khác với các bài đăng hiện có."Không thể tìm thấy lớp chính" khi nhấp đúp vào tệp .jar
Tôi đang sử dụng NetBeans để biên dịch một ứng dụng Java. Khi nó được xây dựng xong, đầu ra đi vào thư mục dist \ chính xác. Tệp jar có mặt ở đó. Nếu tôi đi đến dòng lệnh, điều hướng đến thư mục đó, và gọi như sau:
java -jar Prosperity.jar
tất cả mọi thứ hoạt động tốt. Rõ ràng tên của ứng dụng là Thịnh vượng. Lệnh sau cũng hoạt động tốt:
javaw -jar Prosperity.jar
Tuy nhiên, nhấp đúp vào tập tin .jar đưa ra thông điệp: "Không thể tìm thấy những lớp chính:", và sau đó cung cấp cho các đường dẫn đến tệp .jar. Tôi đã kiểm tra một trăm lần rằng thư mục META-INF tồn tại bên trong tệp .jar và bên trong nó tồn tại một MANIFEST.MF với tên lớp chính xác. Tôi cũng đã kiểm tra rằng lớp chính (App.class) .class file tồn tại bên trong file .jar.
Vì vậy, câu hỏi đặt ra là: sự khác nhau giữa nhấp đúp vào tệp và chạy javaw trên đó là gì? Nó thực sự bực bội vì nó sẽ không chạy!
Cảm ơn mọi hướng bạn có thể cho tôi, tôi đang xé tóc ra đây!
Dường như bằng cách nào đó Java nhận được ý tưởng rằng lớp chính của tôi thực sự được đặt tên là PATH vào tệp jar mà tôi đang chạy. Không có ý tưởng làm thế nào nó đến với điều đó. Dường như bỏ qua giá trị bên trong tệp kê khai và tìm kiếm một lớp chính có tên: C: \ Users \ MyUser \ MyApp \ Prosperity.jar. Tôi giả sử nếu tôi có thể tìm ra cách mà nó trở thành tên của lớp chính mà nó đang tìm kiếm, thì tôi có thể giải quyết vấn đề. – aardvarkk