[java] OpenJDK와 Adoptium / AdoptOpenJDK의 차이점

최근 Oracle Java SE 지원 로드맵 정책 업데이트 (특히 2019 년 3 월 이후 Oracle의 무료 릴리스 업데이트 종료) 로 인해 Oracle Java에 대한 대안을 찾고있었습니다. OpenJDK가 오픈 소스 대안이라는 것을 알았습니다. 그리고 내가 발견 한 AdoptOpenJDK , 지금 알려진 A는 Adoptium로, 사전 구축 된 바이너리를 . 퍼즐.

OpenJDK와 Adoptium / AdoptOpenJDK의 차이점은 무엇입니까?



답변

한마디로 :

  • OpenJDK 는 여러 가지 의미를 가지며 다음을 참조 할 수 있습니다.
    • Java SE (Java Platform, Standard Edition)의 무료 공개 소스 구현
    • 오픈 소스 저장소 — Java 소스 코드, 일명 OpenJDK 프로젝트
    • Oracle에서 유지 관리하는 사전 구축 된 OpenJDK 바이너리
    • OpenJDK 커뮤니티에 의해 유지 관리되는 사전 빌드 된 OpenJDK 바이너리
  • AdoptOpenJDK — 커뮤니티에서 유지 관리하는 사전 빌드 된 OpenJDK 바이너리 ( 오픈 소스 라이센스 )

설명:

사전 구축 된 OpenJDK (또는 배포) — http://hg.openjdk.java.net/ 에서 빌드되고 바이너리 또는 설치 프로그램으로 제공되는 바이너리이며 지원 계약이 가능한 다양한 플랫폼에 제공됩니다.

소스 저장소 ( OpenJDK 프로젝트 라고도 함) 인 OpenJDKhttp://hg.openjdk.java.net 에서 호스팅 되는 Mercurial 기반 오픈 소스 저장소입니다
. 입니다. 자바 소스 코드. VM 및 코어 라이브러리에서 컴파일러에 이르는 대부분의 Java 기능은이 소스 리포지토리에만 기반합니다. 오라클은 이것의 대체 포크를 가지고 있습니다.

배포판 인 OpenJDK (아래 제공 업체 목록 참조)- 맥주마찬가지로 무료이며 말과 같이 무료입니다 과 이지만, 문제가있는 경우 Oracle에 연락 할 수 없습니다. 지원 계약이 없습니다. 또한 Oracle은 LTS (장기 지원) 릴리스를 포함하여 해당 릴리스가 최신 Java 릴리스 인 경우 모든 OpenJDK (배포) 버전에 대한 업데이트 만 릴리스합니다. Oracle이 OpenJDK (배포) 버전 12.0을 릴리스하는 날 OpenJDK (배포) 버전 11.0에 보안 문제가 있어도 Oracle은 11.0의 업데이트를 릴리스하지 않습니다. Oracle에 의해서만 유지 관리됩니다.

OpenJDK 8OpenJDK 11 과 같은 일부 OpenJDK 프로젝트 는 OpenJDK 커뮤니티에서 유지 관리하며 일부 플랫폼의 일부 OpenJDK 버전에 대한 릴리스를 제공합니다. 커뮤니티 회원은이 OpenJDK 버전에서 보안 취약점에 대한 픽스를 릴리스 할 책임이 있습니다.

배포판 은 Oracle의 OpenJDK 배포판과 매우 유사합니다 (무료이며, OpenJDK 소스 리포지토리에서 소스를 컴파일하여 생성 된 빌드입니다). 엔티티로서의 AdoptOpenJDK는 패치를 백 포트하지 않습니다. 즉, 업스트림과 실질적으로 다른 AdoptOpenJDK ‘포크 / 버전’은 없습니다 (Win32 지원과 같은 일부 빌드 스크립트 패치 제외). 즉, 커뮤니티의 구성원 (Oracle 또는 다른 사람이지만 AdoptOpenJDK가 아닌 엔터티로)은 OpenJDK LTS 버전의 업데이트에 대한 보안 수정 사항을 백 포트하면 AdoptOpenJDK가 해당 구성을 제공합니다. OpenJDK 커뮤니티에서 유지 보수합니다.

OracleJDK- 또 다른 배포판입니다. JDK12부터는 OracleJDK의 무료 버전이 없습니다. Oracle의 JDK 배포 제품은 상업적 지원을 목적으로합니다. 이 비용을 지불하면 지원을 위해 Oracle에 의존하게됩니다. Oracle의 OpenJDK 제품과 달리 OracleJDK는 LTS 버전을 더 오래 지원합니다. 개발자는이 특정 JDK의 개인 / 개발 용도로만 무료 라이센스를받을 수 있지만 ‘단지 바이너리’는 기본적으로 OpenJDK 바이너리와 동일하기 때문에 대부분 빨간색 청어입니다. LTS JDK의 보안 패치 버전을 상업적으로 사용하지 않는 한 오라클 웹 사이트에서 다운로드 할 수 있다는 의미입니다.

참고 . Oracle의 OpenJDK 빌드를 “Oracle OpenJDK 빌드”라고 부르는 것이 가장 좋습니다.

오라클의 Java 제품 관리자 인 Donald Smith 다음과 같이 썼습니다 .

이상적으로는 상황에 따라 모든 Oracle JDK 빌드를 GPL 또는 상업용 라이센스에 따라 “Oracle JDK”라고합니다. 그러나 역사적 이유로 남아있는 작은 차이는 있지만 Oracle의 OpenJDK 빌드와 Oracle JDK로 따로 언급 할 것입니다.


OpenJDK 제공 업체 및 비교

-------------------------------------------------- --------------------------------------
| 공급자 | 무료 빌드 | 무료 이진 | 확장 | 상업용 | 허용 |
| | 출처에서 | 배포판 | 업데이트 | 지원 | 라이센스 |
| ------------------------------------------------- ------------------------------------- |
| AdoptOpenJDK | 예 | 예 | 예 | 아니요 | 예 |
| 아마존 – 코레 토 | 예 | 예 | 예 | 아니요 | 예 |
| 아줄 줄루 | 아니요 | 예 | 예 | 예 | 예 |
| BellSoft 리비아 | 아니요 | 예 | 예 | 예 | 예 |
| IBM | 아니요 | 아니요 | 예 | 예 | 예 |
| jClarity | 아니요 | 아니요 | 예 | 예 | 예 |
| OpenJDK | 예 | 예 | 예 | 아니요 | 예 |
| Oracle JDK | 아니요 | 예 | 아니오 ** | 예 | 아니요 |
| Oracle OpenJDK | 예 | 예 | 아니요 | 아니요 | 예 |
| ojdkbuild | 예 | 예 | 아니요 | 아니요 | 예 |
| 레드햇 | 예 | 예 | 예 | 예 | 예 |
| 수액 기계 | 예 | 예 | 예 | 예 | 예 |
-------------------------------------------------- --------------------------------------

소스에서 무료 빌드 -배포 소스 코드는 공개적으로 사용 가능하며 자체 빌드를 조립할 수 있습니다

무료 바이너리 배포판 -배포 바이너리를 공개적으로 다운로드하여 사용할 수 있습니다

확장 업데이트 -일명 LTS (장기 지원)-6 개월 릴리스 수명주기 이후 공개 업데이트

상업적 지원 -일부 공급자는 유료 고객에게 확장 된 업데이트 및 고객 지원을 제공합니다 (예 : Oracle JDK ( 지원 세부 정보 )).

허가 라이센스 -배포 라이센스는 비보호입니다 (예 : Apache 2.0)


어떤 Java 배포를 사용해야합니까?

Sun / Oracle 시절에는 일반적으로 OpenJDK 소스를 기반으로 독점 다운 스트림 JDK 배포를 생성하는 것은 Sun / Oracle이었습니다. 최근 오라클은 상용 지원 만 첨부하여 자체 소유 빌드를 수행하기로 결정했습니다. https://jdk.java.net/ 에서도 OpenJDK 빌드를 자비 롭게 게시합니다. 사이트 .

JDK 11부터는 단일 벤더 (Oracle) 사고 방식에서 원하는 조건에 따라 제품 배포를 제공하는 제공자를 선택하는 사고 방식으로 전환하는 것이 있습니다. 구축 플랫폼, 릴리스 빈도 및 신속성 지원이 구조화되는 방식 등 기존 공급 업체를 신뢰하지 않는 경우 OpenJDK를 직접 구축 할 수도 있습니다.

OpenJDK의 각 빌드는 일반적으로 동일한 원본 업스트림 소스 저장소 (OpenJDK“프로젝트”)로 만들어집니다. 그러나 각 빌드는 매우 독특합니다. $ free 또는 상업용, 브랜드 또는 비 브랜드, 순수 또는 번들 (예 : BellSoft Liberica JDK는 번들 JavaFX를 제공하며 JDK 11부터 Oracle 빌드에서 제거됨).

환경 (예 : Linux) 및 / 또는 라이센스 요구 사항이 특정 배포를 정의하지 않고 가장 표준적인 JDK 빌드 를 원하는 경우 Oracle 또는 AdoptOpenJDK의 OpenJDK를 사용하는 것이 가장 좋습니다.


추가 정보

Stephen Colebourne 의 Oracle JDK넘어서는 시간

Java는 여전히 Java Champions 커뮤니티에서 무료 입니다 (2018 년 9 월 17 일에 게시 됨)

Java는 Java Champions 커뮤니티에서 여전히 무료입니다 2.0.0 (2019 년 3 월 3 일에 게시)

Opsian의 JDK 업데이트 인터뷰에 대한 Aleksey Shipilev (2019 년 6 월 27 일에 게시)


답변

업데이트 : AdoptOpenJDK는 그것의 이름을 변경했습니다 Adoptium 그것의 일환으로 이클립스 재단에 이동 .


OpenJDK ➙ 소스 코드
Adoptium / AdoptOpenJDK ➙ 빌드

OpenJDK와 AdoptOpenJDK의 차이점

첫 번째는 source-code 를 제공하고 다른 하나는 해당 소스 코드의 빌드 를 제공 합니다 .

Java 및 OpenJDK의 여러 공급 업체

Adoptium이클립스 재단 이전으로 알려진 AdoptOpenJDK는 , 단 하나의 Java 플랫폼의 구현을 배포 여러 공급 업체입니다. 여기에는 다음이 포함됩니다.

  • 이클립스 재단 (Adoptium / AdoptOpenJDK)
  • 아줄 시스템
  • 신탁
  • 레드햇 / IBM
  • BellSoft
  • 수액
  • 아마존 AWS
  • … 그리고 더

Java 플랫폼 구현을위한 공급 업체를 선택하는 데 도움이되도록이 플로우 차트를 참조하십시오. 클릭 / 탭하여 확대합니다.

Java 11 구현을위한 공급 업체 선택을 안내하는 순서도

다른 자료 : 이 비교표 Azul Systems 는 유용하며, 제 생각에는 진실하고 공정한 것 같습니다.

다음은 공급 업체 및 구현을 선택할 때 고려해야 할 고려 사항 및 동기 부여 목록입니다.

Java 공급 업체 선택 동기

일부 공급 업체는 JIT 기술을 선택할 수 있습니다.

AdoptOpenJDK에서 사용 가능한 HotSpot 및 JRockit 병합 및 OpenJ9의 히스토리를 보여주는 다이어그램

이 Java 생태계에 대한 자세한 내용을 보려면 Java는 여전히 무료입니다


답변