본문 바로가기

Programming/Java관련

OpenJDK 정리

들어가며...

Oracle에서 JDK 1.8 이후 버전의 JDK 업데이트 중지와 유료화로 인해 많은 Java개발자들이 Oracle JDK에서 Open JDK로 전향중이다.

맥북을 사용중인데 이러한 영향인지는 모르겠으나 이번 MacOS Catalina로 업데이트하고 나니 기존에는 디폴트로 설치되어 있던 JDK가 아예 없어졌다.

하여 OpenJDK를 설치하려고 살펴보다 OpenJDK를 이용한 실제 JDK버전들이 많음을 알게되고 정리가 필요할 듯 하여 이렇게 글로 남긴다.

JDK (Java Development Kit)의 종류와 성격

Java 자체는 무료 언어이며 이를 실행할 수 있는 환경으로 만들어주는 JRE(Java Runtime Environment)에 개발 및 기타도구들이 포함된 것이 JDK이다. 따라서 Java로 구현된 class파일들을 단순히 실행만 할 요량이면 JRE만 있으면 되며 개발까지 하려면 JDK가 필요하게 된다.

 

JCP(Java Community Process) 라는 곳에서 Java 플랫폼에 추가될 기술 및 표준을 정의하고 이를 기준으로 생성되는 것이 OpenJDK이며 이것을 기반으로 추가적으로 보안이슈를 수정하거나 기능을 추가하여 각 단체 또는 회사에서 자기들만의 JDK버전을 배포하게 되는데 Oracle JDK도 이중의 하나인 것이다.

 

다음은 JDK의 종류와 성격을 정리한 표이다.

Provider Free Builds From Source Free Binary Distributions Extended Updates Commercial Support Permissive License
AdoptOpenJDK Yes Yes Yes No Yes
Amazon - Corretto Yes Yes Yes No Yes
Azul Zulu No Yes Yes Yes Yes
BellSoft Liberica No Yes Yes Yes Yes
IBM No No Yes Yes Yes
jClarity No No Yes Yes Yes
OpenJDK Yes Yes Yes No Yes
Oracle JDK No Yes No Yes No
Oracle OpenJDK Yes Yes No No Yes
ojdkbuild Yes Yes No No Yes
RedHat Yes Yes Yes Yes Yes
SapMachine Yes Yes Yes Yes Yes
  • Free Builds from Source - the distribution source code is publicly available and one can assemble its own build
  • Free Binary Distributions - the distribution binaries are publicly available for download and usage
  • Extended Updates - aka LTS (long-term support) - Public Updates beyond the 6-month release lifecycle
  • Commercial Support - some providers offer extended updates and customer support to paying customers, e.g. Oracle JDK 
  • Permissive License - the distribution license is non-protective, e.g. Apache 2.0

어느 JDK를 선택할 것인가?

저처럼 선택장애가 있는 분들은 아래의 그림을 참조하시어 본인에 맞는 JDK를 선택하시면 될 듯 하며 참고로 맥북을 사용하고 있는 필자는 Homebrew로 설치할 수 있는 JDK가 현재로써는 AdoptOpenJDK밖에 없는 듯 하여 해당 JDK를 사용할 계획이다. => 2020년 1월 10일 현재 Homebrew로 설치할 수 있는 OpenJDK는 11, 12, 13버전 설치가 가능함을 확인하였다. 8, 9, 10버전이 필요한 분들은 Homebrew cask를 사용하여 AdoptOpenJDK를 설치할 수 있다.

 

결국 잘모르겠으면 AdoptOpenJDK를 선택

본글은 아래의 내용을 참조하여 정리하였습니다.

https://stackoverflow.com/questions/52431764/difference-between-openjdk-and-adoptopenjdk

 

Difference between OpenJDK and AdoptOpenJDK

Due to recent Oracle Java SE Support Roadmap policy update (end of $free release updates from Oracle after March 2019 in particular), I've been searching for alternatives to Oracle Java. I've found...

stackoverflow.com

 


U2ful은 입니다. @U2ful Corp.