최근 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 프로젝트 라고도 함) 인 OpenJDK 는 http://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 8 및 OpenJDK 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 – https: //adoptopenjdk.net
- 아마존 – Corretto – https://aws.amazon.com/corretto
- 아줄 줄루-https : //www.azul.com/downloads/zulu/
- BellSoft Liberica – https: //bell-sw.com/java.html
- IBM – https : //www.ibm.com/developerworks/java/jdk
- jClarity – https: //www.jclarity.com/adoptopenjdk-support/
- 오픈 JDK 업스트림 – https://adoptopenjdk.net/upstream.html
- Oracle JDK – https : //www.oracle.com/technetwork/java/javase/downloads
- Oracle OpenJDK – http : //jdk.java.net
- ojdkbuild – https: //github.com/ojdkbuild/ojdkbuild
- 레드햇-https : //developers.redhat.com/products/openjdk/overview
- SapMachine – https: //sap.github.io/SapMachine
-------------------------------------------------- -------------------------------------- | 공급자 | 무료 빌드 | 무료 이진 | 확장 | 상업용 | 허용 | | | 출처에서 | 배포판 | 업데이트 | 지원 | 라이센스 | | ------------------------------------------------- ------------------------------------- | | 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 를 제공하고 다른 하나는 해당 소스 코드의 빌드 를 제공 합니다 .
- OpenJDK 는다음에 의해 정의 된 Java 플랫폼 구현의 소스 코드 (빌드 아님)를 제공하는 오픈 소스 프로젝트입니다.
- 자바 사양
- Java Community Process 를 통해 Oracle이 공개 한 JSR (Java Specification Request) 문서
- Oracle에서 공개 한 JEP (JDK Enhancement Proposal) 문서
- AdoptOpenJDK 는 Java 기술 사용자에게 무료로 바이너리 빌드 및 설치 프로그램을 제공하기 위해 Java 커뮤니티의 저명한 회원이 설립 한 조직입니다.
Java 및 OpenJDK의 여러 공급 업체
Adoptium 의 이클립스 재단 이전으로 알려진 AdoptOpenJDK는 , 단 하나의 Java 플랫폼의 구현을 배포 여러 공급 업체입니다. 여기에는 다음이 포함됩니다.
- 이클립스 재단 (Adoptium / AdoptOpenJDK)
- 아줄 시스템
- 신탁
- 레드햇 / IBM
- BellSoft
- 수액
- 아마존 AWS
- … 그리고 더
Java 플랫폼 구현을위한 공급 업체를 선택하는 데 도움이되도록이 플로우 차트를 참조하십시오. 클릭 / 탭하여 확대합니다.
다른 자료 : 이 비교표 Azul Systems 는 유용하며, 제 생각에는 진실하고 공정한 것 같습니다.
다음은 공급 업체 및 구현을 선택할 때 고려해야 할 고려 사항 및 동기 부여 목록입니다.
일부 공급 업체는 JIT 기술을 선택할 수 있습니다.
이 Java 생태계에 대한 자세한 내용을 보려면 Java는 여전히 무료입니다