한마디로 :
- 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 | 예 | 예 | 예 | 아니요 | 예 |
| 아마존 – 코레 토 | 예 | 예 | 예 | 아니요 | 예 |
| 아줄 줄루 | 아니요 | 예 | 예 | 예 | 예 |
| 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 일에 게시)