Tôi có một tập lệnh có kích thước hấp dẫn Automate.groovy
. Tập lệnh không có định nghĩa lớp hoặc phương thức chính. Tôi đang tìm cách đơn giản nhất để tạo một lọ chứa tập lệnh. Tôi đã cố gắng biên soạn kịch bản hấp dẫn bằng cách sử dụng lệnh sau:Tạo một bình thực thi với kịch bản lệnh hấp dẫn
groovyc Automate.groovy
Tôi cũng có một tập tin Manifest manifest-addition.txt chỉ rõ những lớp học chính
Main-Class: Automate
Và tôi đã tạo ra jar bằng cách sử dụng lệnh:
jar cvfm Automate.jar mainfest-addition.txt *.class
Điều này đã cho tôi một cái bình với Automate.class và Automate $ 1.class và tệp kê khai với lớp chính. Nhưng khi tôi cố gắng chạy jar sử dụng java -jar Automate.jar
tôi luôn luôn nhận được lỗi
cannot find or load main class Automate.
Tôi đang làm gì sai ở đây?
Sẽ có một cách đơn giản như thế này để tạo bình. Tôi chỉ có một tập tin kịch bản mà tôi muốn trong jar của tôi và tôi không muốn sử dụng maven/ant/gradle để hoàn thành công việc này. Không phải là một cách đơn giản và đơn giản để làm điều này?
Tại sao giải pháp tốt hơn lại bao gồm cả hộp chứa tất cả trong Automate.jar? – RaGe
Tôi thực sự đã thử bao gồm cả groovy-all jar trong classpath bằng cách sử dụng java -cp groovy-all.jar Automate.jar. Thậm chí sau đó tôi cũng gặp lỗi tương tự. Tôi thực sự có một chú thích @Grab và đó là những gì thực sự gây ra vấn đề. Khi tôi gỡ bỏ nó, nó đã có thể xác định vị trí lớp chính – Harini