2011-01-15 41 views
24

Bắt đầu với phiên bản Mac OS X tiếp theo, Java sẽ không còn được đưa vào hệ thống nữa và tôi không muốn buộc khách hàng của mình tự cài đặt. Vì vậy, tôi muốn làm những gì tôi làm trên Windows - gói nó với ứng dụng của tôi. Nó cũng mang lại cho tôi một số hy vọng rằng nó có thể được đưa vào Mac App Store.Kết hợp một JRE riêng trên Mac OS X

Tôi có thể tải xuống JRE Mac OS X mà tôi có thể đưa vào ứng dụng của mình ở đâu? Hoặc tôi có thể sao chép bản cài đặt trên máy Mac của mình không?

+0

Chỉ cần tò mò, bạn đã học được ở đâu rằng Mac OS X sẽ không bao gồm bất kỳ JRE nào? –

+0

Java 6 SE sẽ khả dụng trên OS X 10.7: http://www.apple.com/pr/library/2010/11/12openjdk.html – mipadi

+0

@mipadi: Tôi nghĩ từ khóa là "có sẵn", chứ không phải là "được bao gồm trong cài đặt mặc định". Có lẽ ngay cả Apple đang để lại các tùy chọn của họ mở cho 10,7. Thực tế là, mặc dù, một chương trình yêu cầu Java không đủ điều kiện cho Mac App Store. Java sẽ trở thành một bản tải xuống tùy chọn sớm hay muộn, đầu tiên từ Apple, sau đó từ Oracle. –

Trả lời

12

Cập nhật (2013/04/15):

Như Thorbjørn helpfully chỉ ra, Oracle bây giờ có một giải pháp cho việc này. Xem http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html. Tuy nhiên, tôi giữ nội dung nguyên bản cho "mục đích lịch sử" và vì đó là một dự án nghiên cứu thú vị.

Phiên bản trước (với sửa đổi):

Đây là một câu hỏi lớn. Tôi sẽ trả lời rằng bạn đơn giản là đi trước thời đại của bạn - như bạn đã chỉ ra, Java sẽ không bị loại bỏ cho đến khi bản phát hành Lion ra mắt. Tuy nhiên, this article làm rõ rằng việc sử dụng Java hôm nay không được phép:

Các ứng dụng sử dụng công nghệ không được sử dụng hoặc được cài đặt tùy chọn (ví dụ: Java, [yêu cầu mã PowerPC] Rosetta) sẽ bị từ chối.

Đồng thời, chưa có ai công bố một JRE phân phối lại cho Mac OS X. Tôi nghĩ rằng đặt cược tốt nhất của bạn, ghi nhớ rằng bạn đang giả mạo nền tảng mới, là để kiểm tra các Mac OS X Port wiki page của dự án OpenJDK. Nó không mô tả cách biên dịch JDK của riêng bạn, nhưng nó không phải là nêu rõ liệu JDK có được kết hợp "có thể" được gói gọn hay không. Tôi nghĩ bạn sẽ phải thử nó và xem :-(.

Ngoài ra, không rõ liệu giấy phép OpenJDK có cho phép điều này ở tất cả (IANAL) hay không. mặc dù tất nhiên các quy tắc có thể khác nhau đối với những đóng góp của Apple

Hope this helps Nếu không có gì khác, đó là một điểm khởi đầu

EDIT:.... tôi sẽ ném ra một đề nghị bổ sung Chúng tôi hiện biết rằng Mono apps can be packaged for the App Store.Thêm nữa, IKVM.NET là một triển khai hoàn chỉnh của Java chạy trên đầu trang của Mono.Bạn có thể thử, về mặt lý thuyết, để ghép hai phần này lại với nhau và nhận được một ứng dụng Java, được đóng gói cho App Store, điều đó có nghĩa là không phải là thực tế yêu cầu một JRE!

Nếu bạn thử điều này, tôi rất thích nghe cách hoạt động :-).

CHỈNH SỬA 2: Thật không may, App Store và GPL dường như không tương thích (xem http://www.zdnet.com/blog/open-source/no-gpl-apps-for-apples-app-store/8046). Giấy phép OpenJDK không phải là chính xác giống như giấy phép GPL, nhưng nó khá gần (một lần nữa, IANAL). Do đó, Mono & IKVM.NET có thể là đặt cược tốt nhất của bạn. Chúc may mắn!

+3

Bạn không phải phân phối ứng dụng của mình thông qua cửa hàng ứng dụng. Nếu bạn làm như vậy, bạn có thể gộp một JRE với nó và giải phóng nó theo GPL. (Điều này hướng đến OP hơn Matt Solnit, nhưng tôi nghĩ nó có liên quan đến bình luận ở đây.) – mipadi

+0

[Link] [1] từ [mipadi] [2] cho rằng Java sẽ là một phần của 'Lion'. Tôi bối rối. [1]: http://www.apple.com/pr/library/2010/11/12openjdk.html [2]: http://stackoverflow.com/users/28804/mipadi –

+0

@unhillbilly bạn đúng, đó là lỗi của tôi. Sư tử sẽ bao gồm Java 6, nhưng Java 7 sẽ là một bản tải xuống riêng biệt từ Oracle. Tuy nhiên, điều này không thay đổi tình hình cho App Store. –

-2

Apple đã tham gia dự án mã nguồn mở Sun/Oracle OpenJDK tháng trước, vì vậy Java trên Apple vẫn còn hoạt động và khởi động.

Chỉ cần yêu cầu người dùng tải xuống và cài đặt OpenJDK JRE dành cho Mac OSX (khi nó có sẵn, ngay bây giờ nó chỉ là mã nguồn).

Và không. bạn không thể bao gồm "thư mục trong mac của bạn" mà không được phép vì đó là mã có bản quyền từ Apple. Cuối cùng, đóng gói một "JRE riêng" là một thực tế rất xấu, nó sẽ làm cho ứng dụng của bạn cồng kềnh, và nếu người dùng kết thúc chạy một số ứng dụng Java, anh ta sẽ kết thúc chạy nhiều máy ảo Java cùng một lúc. tài nguyên hệ thống.

+1

Tôi biết rõ tình hình của Apple/Oracle. Điều đó không giải quyết được vấn đề của tôi. Ngoài việc biên dịch một cách nào đó thành mã gốc, việc đóng gói một JRE riêng là cách duy nhất để đưa ứng dụng Java vào Mac App Store. Các quy tắc nói rằng một ứng dụng không có phụ thuộc vào các thành phần bên thứ 3 tùy chọn. Thật không may, tôi không thể "chỉ nói với người dùng". –

+1

Bạn hiện không thể nói cho ai biết - và sẽ * không bao giờ * có thể thông báo cho người dùng App Store - để "tải xuống và cài đặt OpenJDK JRE dành cho Mac OS X", vì vậy điều này thực sự không trả lời được câu hỏi. – Chuck

4

Trong cùng một tìm kiếm trên web mà tôi tìm thấy câu hỏi này, tôi đã tìm thấy số these instructions từ dự án OpenJDK. Không tự mình cố gắng, tôi không thể bình luận về cách họ làm việc tốt.

Trong khi đó, một nhãn khác, very detailled article được Marco Dinacci xuất bản, cũng đi vào ký và hộp cát.