JDK, Oracle JDK, OpenJDK, Java SE는 무엇입니까?

JDK인지 Java SE인지 모르겠어요.


2017년 9월 Oracle의 Java 지원 체제와 발표 주기의 변경이 방송되면서 다양한 OpenJDK 어때, Oracle JDK 어때 등의 말이 돌기 시작했지만 아직 정리되지 않았다.
여기서 Java의 중심적 실장을 표현한 용어를 정리해보고 싶다.
장문이 번거로운 사람은 총결산만 보는 것이 좋다.

원래 자바는


자바라는 용어에 대한 명확한 정의는 어렵지만 유일하게 갑골문 상표가 확실하다.
대화용으로 쓰이는'자바'는 자바 SE 규격 중심의 소프트웨어 설치, 개발 환경, 프로그램 라이브러리, 이들 개발자, 단체, 커뮤니티, 제품을 활용하는 경향 등'자바'라는 단어에 더해 기술성을 다룬 다양한 것을 담았다.
나는 이것이 루비, 스칼라 등 프로그래밍 언어와 일반적으로 적용된다고 생각한다.

Java SE


Java SE는 사양의 컬렉션입니다.
대표적으로 자바 언어 규격, 자바 가상 기기 규격, 자바 API 규격이 있다.API는 특성상 규격과 실장을 분리하기 어렵고, 설명서 형식은 없지만, 자바Doc가 되기 위해 동작을 상세히 설명했다.
Java SE의 다양한 사양은 JCP 프로세스에 의해 결정됩니다.JCP에는 오라클을 제외한 기업·단체·개인도 참여했다.
또한 갑골문은 자바SE의 실시가 그 규격의 TCK(Technology Compotibility Kit)를 따르는지 검사하고 그 TCK를 통해 자바SE에 부합되는 실시를 인정할 수 있다.
정확히 말하면 자바8과 자바10은 존재하지 않고 자바SE8 또는 자바SE10의 약칭이지만 실용적으로 자주 사용된다.특히 Java EE가 Jakarta EE로 옮겨가면서 Java ME도 표에 거의 나타나지 않는 상황에서 일부러 Java SE11처럼 기술할 필요성도 줄어들었고 Java 11처럼 기술하는 경우도 증가했다.
또한 이런 의미에서'사라진 자바SE 무료 버전'과'유료화 자바SE'라는 표현은 옳지 않지만 Oracle 자체가 자바SE라는 단어를 사용했다고 생각한다.그러나 이는'갑골문 사이트에서 자바SE를 언급하면 JDK'라고 해석할 수 없는 것이 아니기 때문에 갑골문 이외의 사람들이 갑골문의 자바SE를 가리킬 때'Oracle 자바SE'처럼'사라진 Oracle 자바SE 무료 버전','유료화 Oracle 자바SE'처럼 정확하다고 생각한다.

OpenJDK 소개


Java SE 개발 소프트웨어와 관련 제품의 오픈 소스 프로젝트와 그 제품의 소스 코드 방치장입니다.
OpenJDK 제품에서는 자바 가상 기기의 규격에 따라 움직이는 자바 VM, 자바 언어 규격에 기반한 문법으로 작성된 프로그램 코드를 자바 가상 기기에서 이동하는 바이트 코드로 변환하는 자바 컴파일러, 자바 VM에서 이동하는 자바 API 규격에 기반한 API 구현, 처리기, 디버거 등실행 환경과 개발 환경을 포함한다.
OpenJDK의 Java VM을 HotSpot VM이라고 합니다.
실제로 이진법은 제공되지 않았다.jdk.java.인터넷에서 2진법을 다운로드할 수 있지만 자바.인터넷은 오라클의 웹사이트로, 여기서 오라클을 내려받아 구축 테스트를 한 오픈JDK 바이너리를 다운로드할 수 있다.간단하게 말하면'OpenJDK 다운로드'는 주로 이 2진법을 가리키지만 잘 표현할 때 Oracle OpenJDK라고 부른다.
이외에도 어댑티뮤, 아주시스템, 레드하트 등이 자체 빌드 바이너리를 제공한다.Google은 클라우드 서비스를 위한 OpenJDK 바이너리를 준비하고 있습니다.

이른바 JDK


JDK 역시 오라클의 상표로, Java Development Kit의 약칭이다.오라클에서 제공하는 Java SE 개발 키트 세트의 제품명이다.
기본적으로 OpenJDK로 개발됐습니다.
Development Kit인 만큼 컴파일러 등 개발에 필요한 도구를 담았다.실행할 때만 필요한 것이 JRE(Java Runtime Environment)로 배포됐지만, Java9은 이후 폐지됐다.

갑골문JDK 뭐야?


다만 JDK를 말했을 때 OpenJDK인지 갑골문인지 알 수 없는 JDK였기 때문에 이를 구별하기 위해 Oracle JDK라고 불렸다.
오픈JDK 설치에 플라이트 리코더와 미션 컨트롤 등 비즈니스 기능, 자바FX와 자바 웹 스타트 등 데스크톱 기능이 추가된 것은 Oracle JDK다.
그러나 Flight Recorder와 Mission Control 같은 비즈니스 기능은 OpenJDK에 기증되고, 자바FX와 자바 웹 스타트는 Oracle JDK에 묶이지 않기 때문에 자바11부터 OpenJDK와 Oracle JDK는 기능적으로 동일하다.
그렇다면 바이너리는 전혀 다르지 않다. Oracle JDK에 설치 프로그램이 있다.
Oracle OpenJDK가 업데이트되지 않은 경우 자체 패치가 업데이트됩니다.물론 허가증도 다르다.

총결산


Java=생태계
Java SE= 사양
OpenJDK=Java SE의 오픈 소스 프로젝트
갑골문JDK= 갑골문으로 구축된 OpenJDK+ 설치 프로그램
jdk.java.net의 OpenJDK = Oracle OpenJDK = 갑골문이 구축한 OpenJDK
Adoptimu의 OpenJDK=Temurin=Adoptimu 커뮤니티에 구축된 OpenJDK
Adoptim=AdoptOpenJDK가 상표 문제를 회피하기 위해 지은 새 이름
Zulu=Azul에서 제작한 OpenJDK+ 설치 프로그램
IBM Java SDK = IBM이 구축한 OpenJDK-HotSpot VM+OpenJ9+ 설치 프로그램

좋은 웹페이지 즐겨찾기