2009-12-28 27 views
23

Tôi đã sử dụng ba công cụ mã nguồn mở này để đóng gói các ứng dụng java của tôi, nhưng tất cả chúng đều trông như bỏ đồ. Cả ba phần mềm này đều rất tốt. Các tùy chọn hiện nay là gì? (hoặc đang sử dụng Java để phát triển ứng dụng dành cho máy tính để bàn không còn là thị trường "nóng" dành cho nhà phát triển ứng dụng để xây dựng các công cụ này nữa?).Các công cụ đóng gói Java - các lựa chọn thay thế cho jsmooth, launch4j, onejar

1) Trình bao bọc exe: jsmooth - không phát triển mới trong 2,5 năm - không hỗ trợ 64 bit. launch4j - không có sự phát triển mới trong hơn một năm, hỗ trợ 64 bit, nhưng bạn không thể ký exe được tạo bởi launch4j, vì vậy tôi thích jsmooth, nhưng nó không hỗ trợ 64 bit.

2) onejar: Nó hoạt động, nhưng không có bản cập nhật mới hoặc phát triển trang web nào trong hơn 2,5 năm. Vì vậy, chỉ muốn chuyển sang một cái gì đó được hỗ trợ/có một kế hoạch sao lưu nếu nó đột nhiên phá vỡ với một bản dựng Java mới.

Cảm ơn Edgar

+2

Xem http://stackoverflow.com/questions/1276091/installer-generator-written-in-java/1276408#1276408 –

Trả lời

7

Bạn đã kiểm tra IzPack chưa? Đây là một phần mềm tuyệt vời để tạo trình cài đặt đa nền tảng:

IzPack là trình tạo trình cài đặt cho nền tảng Java. Nó tạo ra các trình cài đặt nhẹ có thể chạy trên bất kỳ hệ điều hành nào có sẵn một máy ảo Java. Tùy thuộc vào hệ điều hành, nó có thể được khởi chạy bằng cách nhấp đúp hoặc đơn giản 'java -jar installer.jar' trên một trình bao. Cách sử dụng phổ biến nhất là phân phối các ứng dụng cho nền tảng Java, nhưng bạn cũng có thể sử dụng nó cho các loại dự án khác. Lợi ích chính của IzPack là nó cung cấp một cách độc đáo và sạch sẽ để phân phối một dự án cho người dùng sử dụng các hệ điều hành khác nhau.

Một số công ty và dự án nổi tiếng sử dụng nó trong nhiều năm (Sun Microsystems, JBoss/RedHat, dự án ngôn ngữ Scala, một số dự án ObjectWeb/OW2, XWiki và nhiều hơn nữa). Nếu nó tốt cho họ, nó sẽ tốt cho bạn :)

+3

Rắc rối là nó không cung cấp cơ sở exe hoặc cài đặt Java. Tôi sử dụng Izpack và JSmooth, Izpack cung cấp trình cài đặt nhưng tôi vẫn cần bọc nó trong Jsmooth để có thể chạy mà không yêu cầu Java đã được cài đặt. Tôi cũng bọc chương trình của tôi trong một cấu hình Jsmooth khác và đây là những gì Izpack cài đặt, do đó, applciation có thể ber đưa ra như là một exe. –

1

Maven 2 cung cấp khả năng tạo một bình chứa tất cả các phụ thuộc như một phần của plugin lắp ráp của nó. Điều này kết hợp với cấu hình plugin jar của tệp kê khai (và đặc biệt thiết lập Main-class cho Class with main) là tất cả những gì bạn cần làm để đóng gói cơ bản. Ở một mức độ nào đó, bắt đầu web Java bây giờ được coi là cách tốt hơn để phân phối các ứng dụng Java và khả năng lắp ráp của Maven 2 kết hợp với web bắt đầu giúp bạn mọi thứ bạn cần mà không phải đi qua tuyến đường exe.

+0

Java WebStart không cung cấp trải nghiệm người dùng tốt nếu Java chưa được cài đặt trên máy tính. –

+0

@ ThorbjørnRavnAndersen Có một kịch bản lệnh triển khai JS phát hiện nếu Java có sẵn và đề xuất cài đặt: https://docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/createWebStartLaunchButtonFunction.html – MeTTeO

+0

@MeTTeO Có. Tại công việc trước đây của tôi, chúng tôi đã thử nó theo cách đó nhưng nó không hoạt động tốt cho chúng tôi. Bạn đã sử dụng nó trong sản xuất chưa? –

1

Nếu bạn chỉ muốn một exe (thay vì một trình cài đặt toàn diện), bạn có thể làm một với NSIS: http://nsis.sourceforge.net/Java_Launcher_with_automatic_JRE_installation

Vâng, NSIS là một trình cài đặt nhưng bạn có thể có nó chỉ cần chạy một jar trong cùng bằng cách loại bỏ tất cả các công cụ cài đặt. Về cơ bản nó hoạt động như launch4j nhưng có thể cấu hình nhiều hơn.

6

Kể từ khi không ai trong số các câu trả lời đã được phê duyệt, và JavaFX 2.2 chưa được đề cập ở trên (không có sẵn tại thời điểm các câu trả lời) ở đây đi:

JavaFX 2.2 (một phần của Java Runtime và SDK từ 7u6) cho phép xây dựng thẻ gốc của exe/dmg/rpm cùng với thành phần RT đầy đủ. Tôi tin rằng đây là một câu trả lời hợp lệ cho nhu cầu của bạn, cũng như một giải pháp được hỗ trợ chính thức từ Oracle.

https://blogs.oracle.com/talkingjavadeployment/entry/native_packaging_for_javafx

+0

Đó là câu trả lời hợp lệ nhưng bạn cần một máy Mac để tạo các gói gốc cho Mac vì nó có thể gọi hdiutil để tạo DMG tập tin. Có cùng một vấn đề với RPM vì nó sử dụng rpmbuild. Nhìn vào câu trả lời của tôi, tôi có thể sử dụng bất kỳ hệ điều hành nào hỗ trợ Java để xây dựng RPM, DEB, APP, ... – gouessej

+0

Điểm tốt, @gouessej – akauppi

0

Như tôi đã chán ngấy với những thay đổi gần đây an ninh trong Java Webstart, tôi tạo ra công cụ của riêng tôi, JNDT. Đó là theo GPL.

Nó đi xa hơn đề xuất của Akauppi vì nó cho phép tạo gói GNU Linux ngay cả trong Mac và Windows :) Tôi cũng sử dụng nó để tạo gói Mac theo GNU Linux. Hiện tại, nó chỉ là một thư viện Ant với một vài phụ thuộc cho phép tạo các gói ứng dụng độc lập tự nhiên cho GNU Linux, Mac OS X và Windows. Tôi sử dụng nó cho người bắn súng đầu tiên của tôi và tôi rất hài lòng với nó. Nó bao gồm JRE nhưng nó có thể sử dụng hệ thống JRE nếu bạn muốn.

P.S: JNDT có thể tạo trình cài đặt Windows gốc dưới dạng tệp thực thi với NSIS ngay cả trong GNU Linux.

Tôi hiểu rằng giấy phép GPL không khuyến khích một số nhà phát triển sử dụng công cụ của tôi. Trong trường hợp này, thay vì sử dụng PackR.

+0

Downvote mà không giải thích, tôi thấy rằng vẫn còn một số người thông minh ở đây ... – gouessej

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