2010-04-26 22 views
9

Những người tốt này là người dùng của tôi: http://www.youtube.com/watch?v=o4MwTvtyrUQCó cơ chế phân phối ứng dụng với JRE của riêng mình không?

Nếu bạn không muốn thưởng thức video ở đây là ý chính: người dùng của tôi không thể nói giữa tệp và thư mục, giữa trình duyệt và trang web.

Tôi cần tạo ứng dụng web Java (Tomcat hoặc Jetty) và triển khai nó trong nhiều máy tính, Windows và Mac.

Câu hỏi đặt ra là: Có cơ chế phân phối ứng dụng với JRE của riêng mình không? (trong thế giới Tcl có ba lô và starkits, trong thế giới Python có py2exe và những người khác, đó là ý tưởng). Và ngoài ra, nó có hợp pháp không? Tôi biết VM là nguồn mở nhưng tôi không rõ ràng về các thư viện, và tôi biết về GNU Classpath nhưng tôi không biết nếu tất cả các gói có ở đó.

Tôi không muốn phụ thuộc vào JRE đã cài đặt hoặc người dùng có đủ đặc quyền để cài đặt. Trên máy Mac, tôi không muốn phụ thuộc vào Apple (tôi phải chuyển từ Tiger sang Snow Leopard chỉ để có Java 1.6, tôi không thể đưa người dùng của mình vào vị trí đó)

Mọi thông tin được đánh giá cao. Cảm ơn! jb

chỉnh sửa: Tôi tự hỏi liệu mình có thể dán thư mục JRE trong thư mục ứng dụng của mình không. Điều đó có được phép không?

+1

Chờ ... bạn muốn cài đặt ứng dụng web và máy chủ lên máy của người dùng? Và bạn đang mong đợi những máy tính này không biết chữ để khởi chạy trình duyệt của họ và gõ "http: // localhost: 8080/webapp" để truy cập vào ứng dụng của bạn? Hãy nhớ rằng, họ không biết sự khác biệt giữa một trang web và một trình duyệt ... chưa kể đến việc xử lý các công cụ như tường lửa của Windows và UAC ngăn cản chúng khởi động máy chủ? – Nate

Trả lời

4
 
    To run your application, a user needs the J2SE Runtime Environment, 
    which is freely available from Sun. Or, You can redistribute the 
    J2SE Runtime Environment for free with your application, according 
    to the terms of the Runtime Environment's license. 

Từ http://java.sun.com/j2se/1.5.0/jre/README

Tôi đã không đọc in nhỏ, có vẻ như Sun dự định cho người dân để phân phối lại các JRE. Ngoài ra, có rất nhiều sản phẩm (ví dụ: install4j) giúp bạn dễ dàng phân phối lại JRE, vì vậy nó có vẻ hợp pháp.

Với phần còn lại của nó, bạn có thể gói tomcat, với Dịch vụ tích hợp sẵn để ứng dụng của bạn tự động khởi động và tạo lối tắt trên màn hình nền cho ứng dụng web cục bộ của bạn, vì vậy người dùng được miễn phí nhập ht tp : // localhost: 8080/webapp. Có rất nhiều trình cài đặt FOSS (ví dụ: izpack) cho phép người dùng của bạn cài đặt gói và quản lý việc tạo lối tắt trên màn hình. Bạn đã đề cập không thích sử dụng trình cài đặt, nhưng thậm chí giải nén là loại cài đặt - người dùng của bạn phải chọn một thư mục mà họ có quyền truy cập ghi và điều này không khác gì với trình cài đặt hoàn chỉnh.

Nhưng, với khả năng của người dùng, là giải pháp được cài đặt cục bộ phù hợp nhất với họ? Giải pháp trực tuyến có thể cung cấp triển khai đơn giản hơn (ví dụ: bắt đầu web Java hoặc thậm chí là một applet.)

+0

@mdma: Tôi đoán tôi nên đọc README trước đó. Cảm ơn câu trả lời. Giải pháp được cài đặt cục bộ là vì tôi muốn chúng giữ dữ liệu của chúng trong máy tính của riêng chúng (ngược lại với "đám mây"). Vì tôi viết chủ yếu là mã máy chủ, tôi không bao giờ phải lo lắng về việc phân phối nền tảng này. Thật là lộn xộn. Tôi muốn có một cái gì đó giống như web2py (python) cho Java. Cảm ơn một lần nữa. - jb – user179997

6

Chúng tôi sử dụng Install4j tại nơi làm việc của chúng tôi. Nó sẽ chăm sóc cài đặt và cài đặt JRE nếu cần thiết. Mặc dù nó không miễn phí. Và ít nhất là phiên bản chúng tôi sử dụng không cung cấp cho người dùng Mac với gói JRE. Nhưng theo như tôi có thể tìm ra, đó là do một số hạn chế của Apple. Máy Mac đi kèm với JRE của riêng họ và nếu người dùng của bạn có máy Mac, an toàn của nó để cho rằng họ đã cài đặt JRE. Mặc dù, nếu JRE là phiên bản cũ hơn phiên bản bạn thích, thì họ sẽ phải sử dụng Cập nhật phần mềm để kiểm tra xem có phiên bản mới hơn hay không và cài đặt nó.

+0

+1 Dành cho install4j. – lexicore

+0

@Alinium: Rất tiếc, tôi không thể cho phép người dùng của mình được phép cài đặt bất kỳ thứ gì, vì vậy tôi đang tìm loại phân phối "giải nén và chạy". – user179997

1

Trong OS X, bạn khá mắc kẹt với bất kỳ thứ gì Apple cung cấp cho bạn. Trong các nền tảng khác, không cần thiết để chạy trình cài đặt JRE (mà bạn chỉ ra chính xác người dùng của mình có thể không làm được), chỉ cần nhóm một thư mục JRE cùng với ứng dụng của bạn. Đó là điều mà nhiều người dùng của chúng tôi thực hiện (công ty của tôi có trình cài đặt nhiều nền tảng có tên là InstallBuilder) và chúng tôi đã đóng gói nhiều ứng dụng web Java theo cách đó.Bạn có thể có một cái nhìn tại một số trong số họ ở BitNami (tất cả chúng đều miễn phí)

1

Hoặc trong ngắn hạn, bạn có thể thử này:

Thực hiện một tập tin jar tự thực thi của ứng dụng của bạn.

  • Cung cấp cho người dùng thiết lập JRE nhỏ (appx 15MB cho jre6u7) cùng với ứng dụng của bạn.
  • Bây giờ, hãy tạo một tệp lô (đối với các cửa sổ) trước tiên sẽ thực thi trình cài đặt JRE.
  • Sau đó chọn đường dẫn đến thư mục 'bin' đã được cài đặt của JRE.
  • Bây giờ, sau khi viết 'java -jar yourAppName.jar' trong tập lệnh để chạy tệp jar thực thi của bạn.

ví dụ: cho win.bat viết như sau:

jre-6u7-windows-i586-p :: this will start the JRE installer 
C:\Program Files\Java\jre1.6.0_07\bin\java -jar yourAppName.jar :: this will start your app 

Bạn có thể tạo các kịch bản như vậy cho Mac và Linux cũng có.

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