2010-01-06 59 views
23

Tôi chắc chắn rằng tôi sẽ tìm thấy câu hỏi trùng lặp hoặc câu trả lời thỏa mãn, nhưng tôi chưa có.Sự tương quan giữa các phiên bản Java EE/J2EE với J2SE/JDK

Những gì tôi đang tìm câu trả lời cho những câu hỏi này:

  • Có một mối tương quan chính thức giữa Java EE/J2EE và các phiên bản J2SE/JDK?
  • Nếu câu trả lời là có, nó được viết ở đâu?
  • Nếu câu trả lời là không, thì tại sao? và có một bảng phiên bản không chính thức (ví dụ JDK 1.4 hoạt động tốt với J2EE 1.3, JDK 1.5 hoạt động tốt với J2EE 1.4, JDK 1.6 với Java EE 5 và vân vân)

Tôi có thể nghĩ ra một vài lý do sự tách cặp, nhưng dường như không thể tìm thấy một nguồn tài liệu tham khảo tốt

câu hỏi liên quan:

Java SE vs Java EE, college and career

What is Java EE?

Trả lời

21

Có mối tương quan chính thức giữa các phiên bản Java EE/J2EE và J2SE/JDK không?

Sun có thể cố gắng giữ một số loại "tương quan" để không nhầm lẫn giữa người sử dụng và cho mục đích tiếp thị nhưng, AFAIK, không, không có mối tương quan chính thức (và duy trì đồng bộ hóa giả có thể trở thành khó khăn hơn trong trong tương lai khi JDK phát triển nhanh hơn đặc tả Java EE).

CẬP NHẬT: Tôi đã sai, thực sự có sự tương quan (xem bên dưới). Nhưng tôi vẫn nghĩ rằng điều này có thể trở thành một vấn đề: Java 7 được lên lịch vào cuối năm 2010, nhóm chuyên gia có thành công trong việc tung ra Java EE 7 trước Java 8 và Java 7 EOL không?

Nếu câu trả lời là có, nó được viết ở đâu?

Trích dẫn trang JSR 151: JavaTM 2 Platform, Enterprise Edition 1.4 (J2EE 1.4) Specification nhà:

  • J2EE 1.4 là phiên bản Enterprise của phiên bản 1.4 của nền tảng Java, và do đó sẽ được xây dựng trên J2SE 1.4.

Trích dẫn trang JSR 244: Java(TM) Platform, Enterprise Edition 5 (Java EE 5) Specification nhà:

  • Java EE 5 là phiên bản Enterprise của phiên bản 5 của nền tảng Java, và do đó sẽ được xây dựng trên J2SE 5.0.

Trích dẫn trang JSR 316: JavaTM Platform, Enterprise Edition 6 (Java EE 6) Specification nhà:

  • Java EE 6 là phiên bản Enterprise của phiên bản 6 của nền tảng Java, và do đó sẽ được xây dựng trên Java SE 6.

Nghiêm túc, tại sao chúng ta phải truy cập trang web của JCP để tìm điều này (có lẽ tôi nên bắt đầu ở đó)?

Nếu câu trả lời là không, thì tại sao?

Java Enterprise Edition là một đặc điểm kỹ thuật, không phải là triển khai. Nó có thể dựa vào các tính năng cụ thể (như Java EE 5 và Java 5 generics) nhưng phiên bản JDK thực sự phụ thuộc vào việc triển khai vùng chứa mà bạn đang sử dụng. Xem ví dụ về Websphere bên dưới. (Điều này vẫn được áp dụng, ngay cả sau khi lớn CẬP NHẬT ở trên.)

và có một bảng phiên bản không chính thức (ví dụ JDK 1.4 suôn sẻ với J2EE 1.3, JDK 1.5 suôn sẻ với J2EE 1.4, JDK 1.6 với Java EE 5 và vân vân)

như tôi đã nói ở trên, "việc suôn sẻ" không thực sự có ý nghĩa như thế này phụ thuộc vào container bạn đang sử dụng và container có thể có yêu cầu tương thích khác nhau (ví dụ IBM WebSphere của Máy chủ J2EE 1.4 có thể không hoạt động với JDK 5). Vì vậy, tôi muốn nói về các yêu cầu.

SDK J2EE 1.4 đi kèm với JDK 5 nhưng ... J2EE 1.4 yêu cầu JDK 1.4 trở lên. Java EE 5 yêu cầu JDK 5 trở lên. Java EE 6 yêu cầu JDK 6 trở lên (JDK 5 hiện đang ở EOL trong 2 tháng).

+1

Cảm ơn, sự phụ thuộc rõ ràng là những gì tôi đang tìm kiếm. Có một danh sách requierment chính thức từ Sun? –

+1

Thực ra, trong khi tìm kiếm các yêu cầu chính thức này, tôi nhận ra phần đầu tiên của câu trả lời ban đầu của tôi là không chính xác và đã cập nhật lớn cũng nên trả lời câu hỏi cuối cùng của bạn. –

+1

Tôi có thể thấy rõ ràng bây giờ ... – dstibbe

3

Java EE là một tập hợp o f thông số kỹ thuật và thực hiện tham chiếu cho các thông số kỹ thuật đó. Một phiên bản nhất định có thể xảy ra phụ thuộc vào các tính năng ngôn ngữ hiện diện trong một số phiên bản của JDK, hoặc nó có thể không.

Bạn có thể nghĩ về Java EE giống như cách bạn nghĩ về bất kỳ khung hoặc thư viện của bên thứ ba nào cho Java. Không có lý do gì cho các số phiên bản của Java EE và JDK có bất cứ điều gì để làm với nhau.

+1

Nhưng chúng dường như tương quan kỳ diệu, rất rõ ràng trong Máy chủ ứng dụng được chứng nhận. Ngoài ra, chúng dường như được phát hành (có thể do lý do tiếp thị) cùng một lúc và luôn tuân thủ quy tắc +1 (ví dụ: phiên bản J2EE + 1 = phiên bản JDK) để triết lý sang một bên, tôi là người duy nhất nhìn thấy có de facto quan hệ? –

+1

Đoán của tôi là một số doofus hướng tới tiếp thị mặt trời nhắm đến "tránh nhầm lẫn" bằng cách tương ứng với số phiên bản. –

+1

Thông số kỹ thuật Java EE nhắm mục tiêu một bản phát hành Java SE cụ thể. Ví dụ, JSR 316 nói: 'Java EE 6 là phiên bản Enterprise của phiên bản 6 của nền tảng Java, và do đó sẽ được xây dựng trên Java SE 6.' Các thông số riêng lẻ vẫn có thể chọn tương thích với các phiên bản Java SE thấp hơn, nhưng không bao giờ là phiên bản cao hơn. Việc thực thi Java EE có thực sự chạy trên phiên bản Java SE cao hơn mà nó đã được xác định hay không phụ thuộc vào việc triển khai thực hiện. –

2

Nói chung, các phiên bản Java Enterprise xuất hiện sau JDK cho cùng một phiên bản.

Về cơ bản, trong vài phiên bản trước đây, bạn đã có những gói tải về:
JDK 5 với J2EE 4.
JDK 5 với Java EE 5.
JDK 6 với Java EE 5.
JDK 6 với Java EE 6 (hiện chỉ có sẵn trên trang Java EE, trang Java SE vẫn có JDK 6 với Java EE 5)

Lưu ý rằng các gói tải xuống này thực sự bao gồm phiên bản Java EE của Sun (Glassfish những ngày này), khác với phiên bản Java EE của Apache (Tomcat/Geronimo) hoặc phiên bản Java EE của IBM (Websphere) của IBM.

Nếu bạn chọn không sử dụng Glassfish, bạn có thể tải xuống chỉ JDK6 và một trong các gói Java EE khác. Tính đến thời điểm hiện tại, Glassfish là sản phẩm Java EE 6 duy nhất, như Java EE 6 vừa xuất hiện và đó là triển khai tham chiếu.

0

Sự khác biệt giữa Java EE và Java SE Công nghệ Java vừa là ngôn ngữ lập trình vừa là nền tảng. Ngôn ngữ lập trình Java là một ngôn ngữ hướng đối tượng cấp cao có một cú pháp và kiểu dáng cụ thể. Nền tảng Java là một môi trường cụ thể trong đó các ứng dụng ngôn ngữ lập trình Java chạy.

Có một số nền tảng Java. Nhiều nhà phát triển, ngay cả các nhà phát triển ngôn ngữ lập trình Java lâu năm, cũng không hiểu các nền tảng khác nhau có liên quan như thế nào với nhau.

Java Platforms Programming Language Có bốn nền tảng của ngôn ngữ lập trình Java:

Java Platform, Standard Edition (Java SE)

Java Platform, Enterprise Edition (Java EE)

Nền tảng Java, Phiên bản vi mô (Java ME)

JavaFX

Tất cả J Các nền tảng ava bao gồm một máy ảo Java (VM) và một giao diện lập trình ứng dụng (API). Máy ảo Java là một chương trình, cho một nền tảng phần cứng và phần mềm cụ thể, chạy các ứng dụng công nghệ Java. API là một tập hợp các thành phần phần mềm mà bạn có thể sử dụng để tạo các thành phần hoặc ứng dụng phần mềm khác. Mỗi nền tảng Java cung cấp một máy ảo và một API, và điều này cho phép các ứng dụng được viết cho nền tảng đó chạy trên bất kỳ hệ thống tương thích nào với tất cả các ưu điểm của ngôn ngữ lập trình Java: nền tảng độc lập, sức mạnh, tính ổn định, dễ phát triển và Bảo vệ.

Java SE Khi hầu hết mọi người nghĩ về ngôn ngữ lập trình Java, họ nghĩ về API Java SE. API của Java SE cung cấp chức năng cốt lõi của ngôn ngữ lập trình Java. Nó định nghĩa mọi thứ từ các kiểu cơ bản và các đối tượng của ngôn ngữ lập trình Java thành các lớp mức cao được sử dụng cho mạng, bảo mật, truy cập cơ sở dữ liệu, phát triển giao diện người dùng đồ họa (GUI) và phân tích cú pháp XML.

Ngoài API lõi, nền tảng Java SE bao gồm máy ảo, công cụ phát triển, công nghệ triển khai và các thư viện lớp và bộ công cụ thường được sử dụng trong các ứng dụng công nghệ Java.

Java EE Nền tảng Java EE được xây dựng trên nền tảng Java SE. Nền tảng Java EE cung cấp một môi trường API và thời gian chạy để phát triển và chạy các ứng dụng mạng có quy mô lớn, đa tầng, có thể mở rộng, đáng tin cậy và an toàn.

Java ME Nền tảng Java ME cung cấp API và máy ảo nhỏ để chạy các ứng dụng ngôn ngữ lập trình Java trên các thiết bị nhỏ, như điện thoại di động. API là một tập hợp con của API Java SE, cùng với các thư viện lớp đặc biệt hữu ích cho việc phát triển ứng dụng thiết bị nhỏ. Các ứng dụng Java ME thường là các ứng dụng khách của các dịch vụ nền tảng Java EE.

JavaFX JavaFX là nền tảng để tạo các ứng dụng Internet phong phú bằng API giao diện người dùng nhẹ.Các ứng dụng JavaFX sử dụng các công cụ đồ họa và truyền thông tăng tốc phần cứng để tận dụng lợi thế của các máy khách hiệu năng cao hơn và giao diện hiện đại cũng như các API cấp cao để kết nối với các nguồn dữ liệu được nối mạng. Các ứng dụng JavaFX có thể là các ứng dụng khách của các dịch vụ nền tảng Java EE.

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