2012-01-15 37 views
8

Ứng dụng Java Preferences trên trạm làm việc OS X Lion của tôi cho biết rằng tôi đã cài đặt Java SE 6 v1.6.0_29-b11-402 (cả phiên bản 32 và 64 bit). Rất tiếc, tôi cần các tính năng bổ sung tại chỉ có sẵn trong Ấn bản dành cho Doanh nghiệp.Cài đặt Java EE 6 trên OS X Lion

Nhận xét của 'Jesper' trong 'How install a specific jdk on Mac OS X?' gợi ý rằng tôi cần sử dụng Java do Apple cung cấp, chứ không phải từ Java/Sun. Thật không may, nó không có vẻ rằng Apple cung cấp một phiên bản Enterprise của Java 6.

Điều này dẫn tôi để hỏi một số câu hỏi:

  1. Tôi đã bỏ lỡ một cái gì đó? Apple có cung cấp EE của Java 6 không?
  2. Nếu 1 là đúng, làm cách nào để tải xuống? Nó có thể được cài đặt 'song song' với Java SE 6 không?
  3. Nếu 1 là sai, phiên bản Oracle/Sun có thể được sử dụng không? Có vị trí cài đặt được đề xuất không? Tôi đoán rằng thư mục /System/Library/Frameworks/JavaVM.framework/Versions/ không được khuyến nghị.
  4. Phiên bản Oracle/Sun có vẻ bao gồm nhiều tính năng bổ sung (ví dụ: Glassfish) mà tôi không muốn cài đặt. Tôi có thể cài đặt SDK lõi với tính năng bổ sung không? Tomcat 7 có làm thay thế cho Glassfish không?

** chỉnh sửa **

Câu hỏi này là kết quả của một câu hỏi mà tôi đã đăng: RESTful web service: java.lang.NullPointerException service.AbstractFacade.findAll. Dường như lỗi cụ thể này là kết quả của chú thích bị thiếu (@Stateless). Chú giải này được 'chứa' trong không gian tên javax.ejb. *, Được chứa trong một tệp .JAR không có trên máy trạm của tôi.

Điều này dẫn tôi đến kết luận rằng tôi cần 'Phiên bản doanh nghiệp' của Java 6 (sẽ có tệp .JAR bị thiếu và các tệp phụ thuộc khác). Tôi cho rằng nếu có một cách để xác định tập tin .JAR nào bị thiếu (Netbeans 7 dường như không giúp ích gì cho điều này), tôi có thể chỉ cần thêm nó vào dự án và bỏ qua các phức tạp EE.

Trả lời

17

Không có thời gian chạy đặc biệt nào được gọi là Phiên bản doanh nghiệp của Java cho bất kỳ nền tảng nào.

Có Java SE và chỉ đơn giản là một số giao diện mà vùng chứa Phiên bản doanh nghiệp triển khai.

Mặt trời bối rối thị trường với quy ước đặt tên năm trước khi họ đến với J2EE. Nó không bao giờ là một phiên bản riêng biệt của Java, chỉ một số được giải quyết trên các API rằng nếu một máy chủ thực hiện chúng và thông qua một số chứng nhận, có thể tự gọi mình là một thùng chứa J2EE.

Họ tiếp tục nhầm lẫn thị trường khi họ bắt đầu gọi nó là Java EE 6.

Nếu bạn đang phát triển chống lại các API này tất cả bạn cần là các file .jar có chứa các khai báo giao diện. Bạn có thể tải xuống các tệp .jar API này thường được gọi là J2EE. Nhưng chúng khá vô dụng.

Nhưng tôi nghi ngờ rằng bạn muốn viết một máy chủ Java EE, bạn muốn sử dụng một máy chủ. Nếu bạn muốn sử dụng một máy chủ thì bạn cần tải xuống một máy chủ tuân thủ Java EE và sử dụng các tệp .jar mà nó cung cấp.

Mọi giá trị IDE sử dụng bao gồm những điều này dưới dạng nào đó, thường là bằng cách xác định Máy chủ mà bạn sẽ triển khai. Tomcat không phải là một thùng chứa đầy đủ EE.Nó là một thùng chứa Servlet, là một tập hợp con của các đặc tả EE đầy đủ.

As of OSX Lion, Apple doesn't supply a JDK anymore, nó chỉ là Oracle mà bạn đã mua thành công.

+0

Tôi không hiểu. Nếu không có những điều như một phiên bản Enterprise, tại sao Oracle vẫn sử dụng thuật ngữ này? http://www.oracle.com/technetwork/java/javaee/documentation/javaee6sdku3-relnotes-444316.html – craig

+4

Nó không giống như bạn tải xuống "Java EE" từ đâu đó. Nó giống như bạn tải về một số thực hiện (GlassFish, JBoss AS, WebSphere, WebLogic, vv) và phát triển againts máy chủ này. – Xorty

+0

Trên thực tế, không phải * khác * đối với Java SE. Bạn cũng sẽ không tải xuống Java SE, nhưng sẽ tải xuống bản triển khai. Chỉ thực hiện của Oracle có rất nhiều thị phần mà nó đã trở nên ít nhiều đồng nghĩa với Java SE, nhưng cũng có một JRockit, một MJR, một phiên bản Microsoft (tại một thời điểm nổi tiếng nhất!) Và vẫn còn là một phiên bản của IBM, GCJ (không bao giờ thực sự hoạt động) và một số triển khai tối nghĩa khác. OpenJDK là giải pháp thay thế nổi tiếng nhất, mặc dù phiên bản Oracle giờ đây trực tiếp dựa trên điều này nên cũng không thực sự khác biệt. –

0

Có bản tải xuống Java EE. http://www.oracle.com/technetwork/java/javaee/downloads/index.html Mặc dù vậy, nó không đặc biệt hữu ích trừ khi bạn đang cố gắng phát triển một ứng dụng được dự định chạy trong nhiều vùng chứa.

Điều bạn thường muốn làm là tải xuống vùng chứa và phát triển bằng cách đó. ví dụ. Glassfish (có sẵn tại cùng một liên kết ở trên). Nhiệm vụ này có thể được thực hiện dễ dàng hơn với sự hỗ trợ từ một IDE như Netbeans. Bạn có thể tải xuống phiên bản Netbeans đã bao gồm Glassfish và API Java EE và chỉ bắt đầu làm việc. Các kết hợp IDE/container khác có thể, thường có một số loại plugin có sẵn.

Java 6 JDK/JRE cho OSX vẫn là của Apple. Tuy nhiên, họ đã chuyển hầu hết mã sang Oracle và phiên bản OSX của JDK 7 gần với trạng thái phát hành và có thể đủ trưởng thành cho mục đích của bạn. Tôi đoán tốt nhất là nó được.

+0

Như của Sư tử rõ ràng là trong tiêu đề, [Apple không trực tiếp hỗ trợ một JDK nữa, nó được cung cấp, phát triển và duy trì bởi Oracle.] (Http://stackoverflow.com/a/6765946/177800) –

+0

Nếu bạn đọc bài báo liên quan đến câu hỏi tràn ngăn xếp mà bạn liên kết đến, bạn sẽ nhận thấy rằng nó đề cập đến Openjdk 7. Vui lòng kiểm tra câu trả lời đầu tiên cho câu hỏi SO sau đây về cách tải JDK6 cho Lion http://stackoverflow.com/câu hỏi/6614380/jdk-on-osx-10-7-lion – Bill

+0

Nếu bạn đọc ** TRẢ LỜI ** mà tôi liên kết với nó là về cách Java được phân phối trong Lion. –

5

Java EE 6 là thông số kỹ thuật, với một số API đi kèm được thể hiện dưới dạng giao diện. Java EE 6 trong và của chính nó không phải là một thực hiện các API. Nếu bạn muốn sử dụng các API Java EE 6, bạn sẽ cần tận dụng bản thân của một Máy chủ ứng dụng Java EE tương thích. Glassfish là việc thực hiện tham chiếu của Java EE 6, tuy nhiên cũng có các máy chủ khác tuân thủ. JBoss là một lựa chọn phổ biến khác.

Các cài đặt này dễ dàng trên Mac OS X.

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