Nói ngắn gọn:
- OpenJDK có nhiều ý nghĩa và có thể tham khảo:
- triển khai mã nguồn mở và miễn phí của Nền tảng Java, Phiên bản tiêu chuẩn (Java SE)
- kho lưu trữ nguồn mở - mã nguồn Java hay còn gọi là dự án OpenJDK
- Các tệp nhị phân OpenJDK dựng sẵn được duy trì bởi Oracle
- Các tệp nhị phân OpenJDK dựng sẵn được duy trì bởi cộng đồng OpenJDK
- AdoptOpenJDK - các tệp nhị phân OpenJDK dựng sẵn được duy trì bởi cộng đồng ( nguồn mở được cấp phép )
Giải trình:
Prebuilt OpenJDK (hoặc phân phối) - nhị phân, được xây dựng từ http://hg.openjdk.java.net/ , được cung cấp dưới dạng lưu trữ hoặc trình cài đặt, được cung cấp cho các nền tảng khác nhau, với hợp đồng hỗ trợ có thể.
OpenJDK, kho lưu trữ nguồn (còn gọi là dự án OpenJDK ) - là kho lưu trữ nguồn mở dựa trên Mercurial , được lưu trữ tại
http://hg.openjdk.java.net . Mã nguồn Java. Phần lớn các tính năng Java (từ VM và các thư viện lõi đến trình biên dịch) chỉ dựa trên kho lưu trữ nguồn này. Oracle có một ngã ba thay thế này.
OpenJDK, bản phân phối (xem danh sách các nhà cung cấp bên dưới) - miễn phí như trong bia và loại miễn phí như trong lời nói , nhưng, bạn không được gọi cho Oracle nếu bạn gặp vấn đề với nó. Không có hợp đồng hỗ trợ. Hơn nữa, Oracle sẽ chỉ phát hành các bản cập nhật cho bất kỳ phiên bản OpenJDK (bản phân phối) nào nếu bản phát hành đó là bản phát hành Java gần đây nhất, bao gồm các bản phát hành LTS (hỗ trợ dài hạn). Ngày Oracle phát hành OpenJDK (bản phân phối) phiên bản 12.0, ngay cả khi có vấn đề bảo mật với OpenJDK (bản phân phối) phiên bản 11.0, Oracle sẽ không phát hành bản cập nhật cho 11.0. Duy trì duy nhất bởi Oracle.
Một số dự án OpenJDK - như OpenJDK 8 và OpenJDK 11 - được cộng đồng OpenJDK duy trì và cung cấp các bản phát hành cho một số phiên bản OpenJDK cho một số nền tảng. Các thành viên cộng đồng đã chịu trách nhiệm phát hành các bản sửa lỗi cho các lỗ hổng bảo mật trong các phiên bản OpenJDK này.
AdoptOpenJDK, bản phân phối rất giống với bản phân phối OpenJDK của Oracle (ở chỗ nó miễn phí và là bản dựng được sản xuất bằng cách biên dịch các nguồn từ kho lưu trữ nguồn OpenJDK). AdoptOpenJDK với tư cách là một thực thể sẽ không phải là bản vá lỗi, tức là sẽ không có một 'fork / phiên bản' AdoptOpenJDK khác về mặt truyền thông (ngoại trừ một số bản vá kịch bản xây dựng cho những thứ như hỗ trợ Win32). Có nghĩa là, nếu các thành viên của cộng đồng (Oracle hoặc những người khác, nhưng không phải AdoptOpenJDK với tư cách là một thực thể) sửa lỗi bảo mật backport cho các bản cập nhật của phiên bản OpenJDK LTS, thì AdoptOpenJDK sẽ cung cấp các bản dựng cho những người đó. Được duy trì bởi cộng đồng OpenJDK.
OracleJDK - là một bản phân phối khác. Bắt đầu với JDK12 sẽ không có phiên bản miễn phí của OracleJDK. Cung cấp phân phối JDK của Oracle là dành cho hỗ trợ thương mại. Bạn trả tiền cho việc này, nhưng sau đó bạn phải nhờ đến Oracle để được hỗ trợ. Không giống như việc cung cấp OpenJDK của Oracle, OracleJDK hỗ trợ các phiên bản LTS lâu hơn. Là nhà phát triển, bạn có thể nhận được giấy phép miễn phí cho cá nhân / phát triển chỉ sử dụng JDK cụ thể này, nhưng đó chủ yếu là cá trích đỏ, vì 'chỉ là nhị phân' về cơ bản giống như nhị phân OpenJDK. Tôi đoán điều đó có nghĩa là bạn có thể tải xuống các phiên bản LTS JDK được vá bảo mật từ các trang web của Oracle miễn là bạn hứa sẽ không sử dụng chúng cho mục đích thương mại.
Lưu ý . Có lẽ tốt nhất là gọi các bản dựng OpenJDK của Oracle là "bản dựng OpenJDK của Oracle".
Donald Smith, người quản lý sản phẩm Java tại Oracle viết :
Lý tưởng nhất, chúng tôi chỉ đơn giản gọi tất cả các bản dựng JDK của Oracle là "Oracle JDK", theo GPL hoặc giấy phép thương mại, tùy thuộc vào tình huống của bạn. Tuy nhiên, vì lý do lịch sử, trong khi vẫn tồn tại những khác biệt nhỏ, chúng tôi sẽ đề cập đến chúng một cách riêng biệt như các bản dựng OpenJDK của Oracle và JDK của Oracle.
Nhà cung cấp và so sánh OpenJDK
-------------------------------------------------- --------------------------------------
| Nhà cung cấp | Bản dựng miễn phí | Nhị phân miễn phí | Mở rộng | Thương mại | Cho phép |
| | từ Nguồn | Phân phối | Cập nhật | Hỗ trợ | Giấy phép |
| ------------------------------------------------- ------------------------------------- |
| Áp dụng thông qua | Vâng | Vâng | Vâng | Không | Vâng |
| Amazon - Corretto | Vâng | Vâng | Vâng | Không | Vâng |
| Azul Zulu | Không | Vâng | Vâng | Vâng | Vâng |
| BellSoft Liberica | Không | Vâng | Vâng | Vâng | Vâng |
| IBM | Không | Không | Vâng | Vâng | Vâng |
| jClarity | Không | Không | Vâng | Vâng | Vâng |
| OpenJDK | Vâng | Vâng | Vâng | Không | Vâng |
| Oracle JDK | Không | Vâng | Không ** | Vâng | Không |
| Oracle OpenJDK | Vâng | Vâng | Không | Không | Vâng |
| ojdkbuild | Vâng | Vâng | Không | Không | Vâng |
| Đỏ | Vâng | Vâng | Vâng | Vâng | Vâng |
| SapMachine | Vâng | Vâng | Vâng | Vâng | Vâng |
-------------------------------------------------- --------------------------------------
Bản dựng miễn phí từ nguồn - mã nguồn phân phối có sẵn công khai và người ta có thể tự lắp ráp bản dựng của mình
Phân phối nhị phân miễn phí - các nhị phân phân phối được công khai để tải xuống và sử dụng
Cập nhật mở rộng - còn gọi là LTS (hỗ trợ dài hạn) - Cập nhật công khai ngoài vòng đời phát hành 6 tháng
Hỗ trợ thương mại - một số nhà cung cấp cung cấp các cập nhật mở rộng và hỗ trợ khách hàng cho khách hàng trả tiền, ví dụ: Oracle JDK ( chi tiết hỗ trợ )
Giấy phép cho phép - giấy phép phân phối không bảo vệ, ví dụ: Apache 2.0
Tôi nên sử dụng phân phối Java nào?
Vào thời của Sun / Oracle, thường là Sun / Oracle sản xuất các bản phân phối JDK xuôi dòng độc quyền dựa trên các nguồn OpenJDK. Gần đây, Oracle đã quyết định thực hiện các bản dựng độc quyền của riêng họ chỉ với sự hỗ trợ thương mại kèm theo. Họ cũng xuất bản các bản dựng OpenJDK trên trang https://jdk.java.net/ của họ .
Điều đang xảy ra khi bắt đầu JDK 11 là sự chuyển đổi từ tư duy của một nhà cung cấp (Oracle) sang tư duy nơi bạn chọn một nhà cung cấp cung cấp cho bạn phân phối cho sản phẩm, theo các điều kiện bạn thích: nền tảng họ xây dựng, tần suất và sự nhanh chóng của các bản phát hành , cách hỗ trợ được cấu trúc, v.v. Nếu bạn không tin tưởng bất kỳ nhà cung cấp hiện có nào, bạn thậm chí có thể tự xây dựng OpenJDK.
Mỗi bản dựng của OpenJDK thường được tạo từ cùng một kho lưu trữ nguồn ngược dòng gốc (OpenJDK xóa dự án). Tuy nhiên, mỗi bản dựng khá độc đáo - $ miễn phí hoặc thương mại, có thương hiệu hoặc không có thương hiệu, thuần túy hoặc được đóng gói (ví dụ: BellSoft Liberica JDK cung cấp JavaFX đi kèm, đã bị xóa khỏi các bản dựng của Oracle bắt đầu JDK 11).
Nếu không có môi trường (ví dụ: Linux) và / hoặc yêu cầu giấy phép xác định phân phối cụ thể và nếu bạn muốn xây dựng JDK tiêu chuẩn nhất , thì có lẽ tùy chọn tốt nhất là sử dụng OpenJDK của Oracle hoặc AdoptOpenJDK.
Thông tin thêm
Đã đến lúc nhìn xa hơn JDK của Oracle bởi Stephen Colebourne
Java vẫn miễn phí bởi cộng đồng Java Champions (xuất bản vào ngày 17 tháng 9 năm 2018)
Java vẫn miễn phí 2.0.0 bởi cộng đồng Java Champions (xuất bản vào ngày 3 tháng 3 năm 2019)
Đây là cuộc phỏng vấn cập nhật JDK của Opsian (xuất bản vào ngày 27 tháng 6 năm 2019)