Adoptopenjdk là gì

Do cập nhật chính sách Lộ trình hỗ trợ Java Java SE gần đây (đặc biệt là bản cập nhật phát hành miễn phí $ từ Oracle sau tháng 3 năm 2019), tôi đã tìm kiếm các lựa chọn thay thế cho Oracle Java. Tôi đã thấy rằng OpenJDK là một sự thay thế nguồn mở. Và tôi đã tìm thấy AdoptOpenJDK , hiện được gọi là Adoptium, là một nhị phân dựng sẵn . Nó đánh đố.

Sự khác biệt giữa OpenJDK và Adoptium / AdoptOpenJDK là gì?

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

  • AdoptOpenJDK - https://adoptopenjdk.net
  • Amazon - Corretto - https://aws.amazon.com/corretto
  • Azul Zulu - https://www.azul.com/doads/zulu/
  • BellSoft Liberica - https://bell-sw.com/java.html
  • IBM - https://www.ibm.com/developerworks/java/jdk
  • jClarity - https://www.jclarity.com/adoptopenjdk-support/
  • OpenJDK ngược dòng - https://adoptopenjdk.net/upstream.html
  • Oracle JDK - https://www.oracle.com/technetwork/java/javase/doads
  • Oracle OpenJDK - http://jdk.java.net
  • ojdkbuild - https://github.com/ojdkbuild/ojdkbuild
  • RedHat - https://developers.redhat.com/products/openjdk/overview
  • SapMachine - https://sap.github.io/SapMachine -------------------------------------------------- -------------------------------------- | 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)

Cập nhật: AdoptOpenJDK đã đổi tên thành Adoptium , như là một phần của việc chuyển sang Quỹ Eclipse .


OpenJDK code mã nguồn Adoptium / AdoptOpenJDK  bản dựng

Sự khác biệt giữa OpenJDK và AdoptOpenJDK

Cái đầu tiên cung cấp mã nguồn , cái còn lại cung cấp các bản dựng của mã nguồn đó.

  • OpenJDK là mộtdự án nguồn mở cung cấp mã nguồn (không phải bản dựng) về việc triển khai nền tảng Java như được định nghĩa bởi:
  • các Java Thông số kỹ thuật
  • Các tài liệu Yêu cầu Đặc tả Java (JSR) do Oracle xuất bản thông qua Quy trình Cộng đồng Java
  • Tài liệu đề xuất nâng cao JDK (JEP) do Oracle công bố
  • AdoptOpenJDK là một tổ chức được thành lập bởi một số thành viên nổi bật của cộng đồng Java nhằm cung cấp các bản dựng và trình cài đặt nhị phân miễn phí cho người dùng công nghệ Java.

Một số nhà cung cấp Java & OpenJDK

Adoptium của Quỹ Eclipse , trước đây gọi là AdoptOpenJDK , chỉ là một trong một số nhà cung cấp phân phối các triển khai của nền tảng Java. Bao gồm các:

  • Quỹ Eclipse (Adoptium / AdoptOpenJDK)
  • Hệ thống Azul
  • Oracle
  • Mũ Đỏ / IBM
  • BellSoft
  • nhựa cây
  • AWS của Amazon
  • và hơn thế nữa

Xem sơ đồ này của tôi để giúp hướng dẫn bạn chọn nhà cung cấp để triển khai nền tảng Java. Nhấn / chạm để phóng to.

Adoptopenjdk là gì

Một tài nguyên khác: Ma trận so sánh này của Azul Systems rất hữu ích và có vẻ đúng và công bằng với tôi.

Dưới đây là danh sách các cân nhắc và động lực để xem xét trong việc lựa chọn một nhà cung cấp và thực hiện.

Adoptopenjdk là gì

Một số nhà cung cấp cho bạn lựa chọn công nghệ JIT .

Adoptopenjdk là gì

Để hiểu thêm về hệ sinh thái Java này, hãy đọc Java vẫn miễn phí