2012-05-23 35 views
22

Tôi có một ứng dụng Java .jar mà tôi muốn phân phối cho các khách hàng của tôi trên Mac hoặc Windows. Tôi muốn sử dụng một công cụ lấy tệp jar của tôi và kết thúc tốt đẹp nó trong một tệp .dmg và .exe cho Mac và Windows tương ứng thực hiện điều này khi chạy:Cách gói ứng dụng Java cho Mac/Windows?

  1. Kiểm tra xem JRE đã được cài đặt hay chưa; nếu không, nó sẽ cài đặt JRE6 từ Oracle. Khác, nó cập nhật JRE đã cài đặt lên phiên bản 1.6.x mới nhất.
  2. Tạo liên kết cắt ngắn trong Menu Bắt đầu (trong Windows) hoặc thư mục Ứng dụng (trong MacOSX) cho ứng dụng được bao bọc của tôi và cho phép ứng dụng của tôi chạy bằng JRE
  3. Hỗ trợ "gỡ cài đặt" dễ dàng cho Windows. Đối với Mac, chỉ cần kéo .app vào Thùng rác để xóa.

tính năng tùy chọn:

  1. Hỗ trợ cho nền tảng biểu tượng ứng dụng độc lập
  2. Hỗ trợ tự động cập nhật vào jar
  3. Hỗ trợ cho lập luận để JRE khi chạy .jar tôi
  4. hỗ trợ Linux (.deb hoặc .rpm)
+1

Tôi cảm thấy rằng Trình tạo gói và Trình cài đặt nâng cao có thể thực hiện mọi thứ bạn yêu cầu. Tôi không nghĩ rằng bạn sẽ tìm thấy một công cụ sẽ làm việc cho cả Windows và Mac. Có thể bạn sẽ cần một thứ gì đó riêng biệt để quản lý gói. Nếu bạn cho chúng tôi biết các yêu cầu của bạn chưa được đáp ứng bởi Trình tạo gói, Trình cài đặt nâng cao hoặc bất kỳ điều gì bạn đã thử, chúng tôi có thể có thể trợ giúp. – jahroy

+0

Lưu ý rằng jre 1.6 chỉ có sẵn dưới dạng bản tải xuống và cập nhật phần mềm từ Apple. 1.7 có sẵn từ Oracle. – Mark

+0

Tôi không biết ngân sách của bạn là gì, nhưng hãy xem: [InstallAnywhere của Flexera Software] (http://www.flexerasoftware.com/products/installanywhere.htm) – msiyer

Trả lời

8

Kiểm tra Package Maker cho Mac và Advanced Installer dành cho Windows.

Tôi đã sử dụng cả hai cho mọi yêu cầu mà bạn đã liệt kê.

Tôi chưa sử dụng chúng để tự động cập nhật, nhưng có thể bạn phải tạo logic đó vào ứng dụng của mình.

Đừng mong đợi họ làm tất cả công việc cho bạn.

Mong đợi dành một chút thời gian để xây dựng trình cài đặt cho mỗi nền tảng.

Tôi chắc chắn có rất nhiều tùy chọn cho Windows và Linux. Trình cài đặt nâng cao chỉ xảy ra là ứng dụng duy nhất tôi đã sử dụng.

Tôi tin rằng Trình tạo gói là tiêu chuẩn dành cho máy Mac. Nó khá tuyệt vời và dễ sử dụng.

Chúc may mắn!

0

Để triển khai trên Windows, tôi thích sử dụng Launch4j để gói jar ứng dụng của mình và tạo tệp thực thi Windows có thể phát hiện và sử dụng JRE đã được cài đặt hoặc cho phép bạn tự nhóm. Nó nhanh, nhẹ và dễ dàng viết kịch bản với Ant (hoặc Maven) như là một phần của quá trình xây dựng của bạn.

Kết hợp với điều này, tôi thường sử dụng NSIS để tạo trình cài đặt đặt phím tắt và cho phép cài đặt/gỡ cài đặt/sửa chữa từ Bảng điều khiển. Với một chút công việc, điều này cũng có thể được viết qua Ant, và cũng có thể được xây dựng từ một nền tảng Linux.

Những giải pháp này rõ ràng sẽ không hoạt động cho triển khai Mac, nhưng tôi nghi ngờ bạn sẽ phải sử dụng các công cụ khác nhau cho các nền tảng khác nhau nếu bạn muốn trải nghiệm tốt nhất cho người dùng cuối.

1

Tôi đã nghiên cứu điều này một lúc để tôi có thể cài đặt ứng dụng trong Linux và Windows. Các phương án tốt nhất mà tôi tìm thấy là -

Bạn có thể tìm kiếm thông tin làm thế nào để sử dụng nó có nguồn gốc ở blogpost này. Nhưng cài đặt nó trong Linux đã cho tôi sử dụng một kịch bản .sh. Đối với mac kiến ​​thức của tôi bị hạn chế. Hi vọng điêu nay co ich.

1

Lưu ý rằng nếu bạn phát triển ứng dụng của mình dưới dạng ứng dụng nền tảng netbeans, thì netbeans sẽ tạo trình cài đặt nền tảng chéo cho bạn (bao gồm cả mac).

Thực tế là ứng dụng netbeans của nó có ít tác động đến giao diện của ứng dụng, bạn vẫn có thể làm cho ứng dụng hoạt động khá giống với bất kỳ ứng dụng xoay độc lập nào.

này có những ưu điểm sau, mà tôi nghĩ rằng làm cho nó một lựa chọn hấp dẫn: - nền tảng chéo - nó miễn phí - không đòi hỏi một JDK sẽ được cài đặt trước khi chạy trình cài đặt - tích hợp một quá trình cập nhật phần mềm

1

Đã có một số câu trả lời hay, nhưng tôi đoán cần phải đề cập đến JavaWebStart. Tất nhiên, nó chỉ thích hợp cho web deploment, nhưng sau khi cài đặt Ứng dụng của bạn cũng có thể chạy offline.

Các tính năng (tự động cập nhật, kiểm tra phiên bản JVM, biểu tượng Màn hình) có sẵn.

Những điều cần xem xét:

  • ứng dụng của bạn cần được đã ký kết để có quyền truy cập như một ứng dụng "bình thường".
  • afaik Bạn không thể gửi ứng dụng của mình theo bất kỳ cách nào khác ngoài mỗi lần tải xuống web.
Các vấn đề liên quan