2010-02-11 20 views
11

Gần đây tôi đã phát hành một ứng dụng Java nền tảng chéo. Để phân phối, chúng tôi đã tạo trình cài đặt NSIS cho Windows và sử dụng DMG cho Mac (có tệp JarBundled .app). Chúng tôi cũng có kế hoạch tạo các RPM, DEB và tarballs của Linux.Cách phát hành các bản vá lỗi cho các chương trình Java

Tổng cộng có 5 phương pháp phân phối khác nhau để chăm sóc.

Câu hỏi của tôi là: Cách nền tảng chéo tốt nhất để vá một chương trình Java chạy trên nhiều nền tảng là gì?

Trả lời

4

Bạn đã cân nhắc việc phát hành phiên bản nhỏ mới của toàn bộ ứng dụng, thay vì bản vá lỗi? Vì bạn đã có thời gian đầu tư vào trình cài đặt cho các nền tảng khác nhau, có vẻ như nó sẽ tránh được nhiều rắc rối khi cố gắng tìm ra phương pháp thứ hai cho mỗi nền tảng. Tôi không thể nghĩ ra một nhược điểm trừ khi ứng dụng của bạn là rất lớn, vì băng thông là khá rẻ hiện nay.

+0

Lý do chính cho chúng tôi muốn tránh điều đó là chúng tôi không muốn phân phối trình cài đặt cho mọi người, vì điều duy nhất bảo vệ chúng tôi khỏi vi phạm bản quyền là trình xác thực khóa cấp phép đơn giản. Một bản vá, mặt khác, có thể được phân phối từ trang web của chúng tôi một cách dễ dàng, vì nó vô dụng mà không có chương trình chính. – cdmckay

+0

Tôi đồng ý - chỉ cần tạo phiên bản mới của trình cài đặt, vì vậy người dùng không xử lý các phương pháp cài đặt khác nhau. –

+0

Làm thế nào để bạn phân phối ứng dụng gốc của mình? –

4

Tôi có thể nói rằng tập lệnh Ant là cách đa nền tảng hợp lý để thực hiện tác vụ. Nếu logic bản vá của bạn bao gồm di chuyển một số tập tin xung quanh, cập nhật các lọ, xử lý cấu hình, vv, thì Ant có thể phù hợp với bạn. Bạn có thể sử dụng AntInstaller làm GUI.

+0

Tôi nghĩ bạn đã hiểu lầm. Tôi đang tìm cách gửi bản vá cho người dùng. Người dùng sử dụng ứng dụng này sẽ có tính phi kỹ thuật cao, vì vậy, điều chúng tôi mong đợi nhất từ ​​họ là có thể nhấp đúp vào tệp EXE hoặc DMG. Edit: NM, có vẻ như bạn hiểu :) – cdmckay

+0

Hãy đến với suy nghĩ của nó, phát hành một bản vá là khá giống như phát hành một gói cài đặt đầy đủ. Về một trình cài đặt đẹp cho người dùng cuối, trong dự án của tôi, tất cả logic cài đặt/vá là một kịch bản lệnh Ant và chúng tôi đang sử dụng AntInstaller cùng với tập lệnh khởi động nền tảng cụ thể (.bat/.sh) để khởi động AntInstaller. Đây có thể không phải là giải pháp tốt nhất (.exe sẽ đẹp hơn), nhưng - chỉ 2 xu của tôi. –

+0

Tôi đánh giá cao nhận xét về downvote. –

4

Đây có thể không phải là một lựa chọn cho bạn, nhưng tôi nghĩ cách tốt nhất là sử dụng Java Web Start.

Nó cung cấp cơ chế độc lập nền tảng để tự động tải xuống các phiên bản phần mềm vá của bạn.

+0

Tôi đang bối rối bởi câu trả lời này, làm thế nào sẽ jws viện trợ trong việc áp dụng một miếng vá? Bạn có thể xây dựng? – kgrad

+0

@Peter Lang: Tôi đang làm việc cho một công ty bán phần mềm thương mại. Điều cuối cùng bạn muốn, trừ khi bạn sẵn sàng hy sinh một phần lớn khách hàng tiềm năng OS X của mình, là sử dụng Java Web Start. Để bắt đầu, Java vẫn có một đại diện * rất * xấu trong số những người dùng OS X và bạn thực sự giấu chúng thực tế rằng đó là một ứng dụng Java. Sau đó, tất nhiên JWS một tải trọng lớn của vấn đề của riêng mình. – SyntaxT3rr0r

+0

@WizardOfOdds, Java hoạt động tốt ở đây đối với chúng tôi theo OS X. Bạn có thể giải thích về kinh nghiệm của bạn với Java trong OS X vì nó quá tệ? Bản phân phối có thể chứa hạt giống ban đầu cho ứng dụng JNLP để có thể tránh tải xuống lớn. –

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