2010-09-16 47 views
11

Tôi có một ứng dụng Java và đã tạo một tệp JAR và triển khai nó.Làm cách nào để bao gồm các JAR bên ngoài trong Project JAR của riêng tôi

Ứng dụng sử dụng các JAR bên ngoài chẳng hạn như JAR Log4J. Khi tạo tệp JAR của tôi, làm cách nào để bao gồm tất cả các JAR phụ thuộc bên ngoài vào tệp lưu trữ của tôi?

Để làm cho Ứng dụng của tôi hoạt động, tôi phải sao chép Log4J JAR vào cùng thư mục với JAR của riêng tôi mà nó đánh bại mục đích của bình. Nó sẽ không được thanh lịch hơn để có 1 file JAR duy nhất để triển khai?

+1

Rất cám ơn tất cả những người đã dành thời gian trả lời. Tôi sẽ xem xét các tùy chọn tôi có và mang nó từ đó. Kính trọng John – Wilko

Trả lời

4

Bạn có thể sử dụng một số thứ như One-JAR để đóng gói ứng dụng Java cùng với sự phụ thuộc vào một tệp Jar thực thi (One-JAR sử dụng trình nạp lớp tùy chỉnh để làm cho các JAR lồng nhau).

2

Bạn phải mở rộng các lọ thư viện vào cùng một nơi mà các lớp đã biên dịch của bạn đi, sau đó tạo một cái lọ từ đó. Tùy thuộc vào cách xây dựng quy trình của bạn được thiết lập, có thể có nhiều cách để đạt được điều này. Nó không phải là khoa học tên lửa - một lọ chỉ là một kho lưu trữ zip với một thư mục META-INF ở cấp cơ sở.

0

Bản thân JAR không có khả năng lồng ghép các JAR khác, như bạn đã khám phá.

Theo truyền thống, người ta sẽ phân phối lưu trữ ZIP hoặc trình cài đặt khác để giải phóng JAR ứng dụng (của bạn) cũng như bất kỳ JAR hỗ trợ nào ở vị trí thích hợp để truy cập đường dẫn lớp. Thông thường, sau đó, ứng dụng được gọi thông qua một kịch bản lệnh đã gọi ra JAR chính và tạo ra một classpath liệt kê các JAR hỗ trợ.

Như các áp phích khác đã lưu ý, bạn có một số tùy chọn để tạo một siêu JAR nếu đó là những gì bạn muốn.

2

Giữ riêng biệt JAR tốt hơn vì dễ dàng chỉ nâng cấp các JAR cụ thể lên các phiên bản mới mà không cần chạm vào bất kỳ cấu hình nào khác. Vì vấn đề của bạn phải sao chép từng tệp vào cùng một vị trí như của JAR, bạn luôn có thể sử dụng Java CLASSPATH và bao gồm bất kỳ JAR nào vào đường dẫn lớp của ứng dụng của bạn.

6

Nếu bạn sử dụng Eclipse, Bạn có thể trích xuất tất cả các file đưa vào một jar Runnable như thế này:

  1. Nhấp chuột phải vào tên dự án của bạn từ Package Explorer và chọn Export.
  2. Trong màn hình xuất, chọn Java -> Tệp JAR Runnable và Tiếp theo.
  3. Điền vào màn hình Thông số tệp JAR Runnable và Kết thúc.

Bạn có thể chọn có nên gói các lọ phụ thuộc dưới dạng tệp jar riêng lẻ hoặc trích xuất chúng vào tệp JAR được tạo hay không.

Các vấn đề liên quan