Tôi có tệp jar đề cập đến lớp chính trong tệp kê khai. Khi tôi cố gắng thực hiện bình bằng cách sử dụng lệnh sau đâyTùy chọn java -jar có thay đổi tùy chọn đường dẫn
java -cp .;./* com.foo.MainClass
Mã thực thi và hoạt động.
Khi tôi cố gắng thực hiện jar bằng cách sử dụng lệnh sau
java -cp .;./* -jar myjar.jar
tôi nhận lớp không tìm thấy execptions đối với một số lọ, đều trong cùng thư mục giống như MyJar.jar. Tôi hy vọng rằng tùy chọn -cp sẽ bao gồm các jars đó trong đường dẫn lớp. Tôi đã sửa đổi mã của mình để in thuộc tính java.class.path. Trong trường hợp đầu tiên, nó liệt kê tất cả các lọ trong thư mục hiện tại, trong trường hợp thứ hai, nó chỉ liệt kê myjar.jar
Tôi cũng sửa đổi tệp kê khai để thêm phần tử Lớp-Path vào tất cả các lọ. Sau đó, lệnh thứ hai hoạt động. Nhưng trong mã của tôi tôi đang cố gắng để tải một lớp học kinh tế có tên được cung cấp tại dấu nhắc lệnh, vì vậy tôi muốn đường dẫn lớp chứa tất cả các lọ trong một thư mục. Làm cách nào để lệnh thứ hai hoạt động trong trường hợp này?
Hãy xem [OneJar] (http://one-jar.sourceforge.net/). Điều đó sẽ giải quyết vấn đề CP của bạn. – flash
@flash: Có thể là không. Anh ta nói anh ta không biết đường dẫn lớp bổ sung vào thời gian biên dịch (nếu không anh ta chỉ có thể thêm nó vào tệp kê khai). – Thilo
Có vẻ như bạn phải sử dụng trình nạp lớp của riêng mình (điều đó sẽ thêm lại mọi thứ theo môi trường của bạn). – Thilo