2009-02-09 42 views
21

Tôi cần xuất khẩu jar từ dự án Java Eclipse của mình và tôi muốn bao gồm các thư viện được tham chiếu. Tôi không thể sử dụng fatjar cho điều này, đó là những gì mọi người dường như đề nghị. Phải có cách khác để làm điều này. Có ai biết đây là gì?!Eclipse Java; jar xuất khẩu, bao gồm các thư viện được tham chiếu, không có fatjar

+5

Vui lòng giải thích lý do bạn không thể sử dụng farjar. Tất cả mọi người đề xuất nó bởi vì đó là những gì mọi người sử dụng và nó hoạt động tốt. Vậy tại sao nên có một công cụ khác để làm điều tương tự? * bối rối * –

Trả lời

10

Phiên bản tiếp theo của Eclipse (3.5, do tháng 6 năm sau) có tùy chọn để bao gồm tất cả các lọ cần thiết. Nó được giới thiệu trong 3.5M5 (cảm ơn, basszero).

Hoặc bạn có thể thử xây dựng dự án của mình với Maven 2. Sau đó, bạn có thể tạo bình "béo" với mvn assembly:assembly.

Một tùy chọn khác là sử dụng ant. Giải nén tất cả các tệp JAR vào một thư mục tạm thời và lặp lại chúng.

+1

Phiên bản mốc gần đây của Eclipse (3.5M5) bao gồm tính năng bạn vừa đề cập. – basszero

0

Tôi đoán bạn có thể sửa đổi tập lệnh xây dựng của mình để bao gồm các thư viện. Nếu tôi đã hiểu một cách chính xác, bạn có thể đưa vào bạn <jar destfile="myProject.jar"> ... <zipfileset src="theExternalLib.jar"> </jar>

6

Tôi nghĩ rằng phiên bản của nó 3.3 của Eclipse (Ganymede) có Xuất dưới dạng tập tin Runnable JAR. Thời gian qua tôi đã thử nó, nó đã bao gồm các thư viện tham chiếu và cũng un-jars tất cả các lọ.

2

Chỉ cần đăng một chút (Helios) gotcha để sử dụng Jar xuất của Eclipse - trước tiên bạn phải chạy (trong Eclipse) một lớp với phương thức main(), nếu không trình đơn thả xuống "Khởi chạy cấu hình" sẽ trống và bạn sẽ không thể xuất.

0

Bạn có thể xuất tệp XML từ nhật thực, sau đó phân tích tệp để lấy các lọ bạn muốn - xem liên kết this.

4

Tính năng này của nhật thực hoạt động tốt để chỉ đổ các thư viện tham chiếu vào thư mục riêng biệt. "Xuất dưới dạng Jar Chạy được" với "Sao chép thư viện tham chiếu vào thư mục con ..".

+0

Đây gần như là câu trả lời giống như câu trả lời được cung cấp bởi @ bernie-perez. Nên đã được đăng như là một bình luận cho câu trả lời đó thay thế. – cabad

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