Làm thế nào để tạo một jar với các thư viện bên ngoài có trong Eclipse?


89

Tôi đã hoàn thành dự án kết nối với cơ sở dữ liệu (MySQL). Bây giờ tôi muốn xuất dự án dưới dạng jar. Nhưng tôi không biết làm thế nào để bao gồm các phụ thuộc bên ngoài của nó? Có cách nào để làm điều đó trong Eclipse hay tôi nên sử dụng bất kỳ tập lệnh nào cho việc đó ?.


Bạn dự định phân phối ứng dụng như thế nào. cho người dùng cuối? Mạng / internet, đĩa hoặc ổ đĩa flash, .. cái gì khác? Có ứng dụng. có GUI?
Andrew Thompson

Câu trả lời:


140

Khi bạn export dự án của mình dưới dạng 'Runnable jar' (Chuột phải vào dự án -> Export -> Runnable jar), bạn có tùy chọn để đóng gói tất cả các phụ thuộc vào jar được tạo. Nó cũng có hai cách khác (xem ảnh chụp màn hình) để xuất thư viện của bạn, hãy lưu ý các giấy phép khi quyết định phương pháp đóng gói nào bạn sẽ sử dụng.

Gói thư viện

Trình đơn thả xuống 'cấu hình khởi chạy' có các lớp chứa một main(String[])phương thức. Lớp đã chọn được bắt đầu khi bạn 'chạy' bình.

Xuất dưới dạng một jar có thể chạy được sử dụng các phụ thuộc vào đường dẫn xây dựng của bạn (Chuột phải vào dự án -> Đường dẫn xây dựng -> Định cấu hình Đường dẫn xây dựng ...). Khi bạn xuất dưới dạng một jar 'thông thường' (không chạy được), bạn có thể chọn bất kỳ tệp nào trong (các) dự án của mình. Nếu bạn có các thư viện trong thư mục dự án của mình, bạn có thể bao gồm chúng nhưng phụ thuộc bên ngoài, ví dụ, không thể được đưa vào (đối với các dự án maven, tìm kiếm tại đây ).


2
@Joost: thưa ông, tôi không nhận được bất kỳ tùy chọn nào trong tiêu đề cấu hình khởi chạy khi cố gắng xuất ứng dụng java dưới dạng jar có thể chạy được. Điều gì có thể bị sai hoặc thiếu?
Rat-a-tat-a-tat Ratatouille, 07/10

Eclipse liệt kê các main()phương pháp mà nó biết. Thử chạy ứng dụng của bạn một lần (Nhấp chuột phải vào dự án, Chạy dưới dạng, Ứng dụng Java) và sau đó xuất lại.
Joost

Điều đó không liên quan cho câu hỏi này, vì nó nói rõ về Eclipse. Vui lòng đăng một câu hỏi mới nếu bạn không thể tìm thấy câu trả lời (chắc chắn là ở đâu đó trên trang web này rồi)
Joost

1
Có ai biết cách thực hiện điều này đối với một bình không chạy được trong nhật thực không? Không có tùy chọn nào liên quan đến 'thư viện bắt buộc'.
jb1

@ jb1 Bạn đã bao giờ hiểu ra điều này chưa?
TheKingElessar

8

Bạn có thể sử dụng Export-> Java-> Runnable Jar để tạo một jar bao gồm các phụ thuộc của nó

Ngoài ra, bạn có thể sử dụng plugin fatjar eclipse để nhóm các lọ lại với nhau


5

Bạn có thể nhấp chuột phải vào dự án, nhấp vào xuất, nhập 'jar', chọn 'Runnable JAR File Export'. Ở đó bạn có tùy chọn 'Trích xuất các thư viện bắt buộc vào JAR đã tạo'.


3

Cá nhân,

Không có câu trả lời nào ở trên phù hợp với tôi, tôi vẫn tiếp tục nhận được lỗi NoClassDefFound (Tôi đang sử dụng Maven cho các phần phụ thuộc). Giải pháp của tôi là xây dựng bằng cách sử dụng "mvn clean install" và sử dụng "[project] -jar-with-dependencies.jar" mà lệnh đó tạo ra. Tương tự trong Eclipse, bạn có thể nhấp chuột phải vào dự án -> Run As -> Maven Install và nó sẽ đặt các lọ vào thư mục đích.


2

Nếu bạn muốn xuất tất cả các tệp JAR của một dự án web Java, hãy mở tệp WAR được tạo mới nhất bằng công cụ ZIP (ví dụ: 7-Zip), điều hướng đến thư mục / WEB-INF / lib /. Tại đây, bạn sẽ tìm thấy tất cả các tệp JAR mà bạn cần cho dự án này (như được liệt kê trong "Thư viện được tham chiếu").


0

Trong khi xuất nguồn của bạn vào một jar, hãy đảm bảo bạn chọn tùy chọn jar có thể chạy được từ các tùy chọn. Sau đó, chọn nếu bạn muốn đóng gói tất cả các lọ phụ thuộc hoặc chỉ đưa chúng trực tiếp vào tệp jar. Nó phụ thuộc vào dự án mà bạn đang làm việc.

Sau đó, bạn chạy jar trực tiếp bằng java -jar example.jar.


0

Để tạo tệp jar trong eclipse, hãy nhấp chuột phải vào dự án mà bạn muốn tạo, Chọn Xuất> Java> Tệp Jar Runnable,

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Bình tạo của nó bao gồm tất cả các phụ thuộc từ Pom.xml, Nhưng hãy đảm bảo vấn đề giấy phép nếu bạn đang sử dụng phụ thuộc của bên thứ ba cho ứng dụng của mình.


0

Nếu đó là một dự án java độc lập (Phương thức chính) thì Không phải bất kỳ đường dẫn cụ thể nào đặt tất cả các lọ bên trong dự án chứ không phải bất kỳ đường dẫn cụ thể nào sau đó nhấp chuột phải vào dự án -> export -> Runnable jar -> Chọn cấu hình trưa và xử lý Thư viện sau đó chọn tùy chọn nút radio "Đóng gói thư viện yêu cầu vào jar được tạo" -> Kết thúc.

Hoặc là

Nếu bạn có một dự án web thì hãy đặt tất cả các lọ vào thư mục web-inf / lib và thực hiện bước tương tự.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.