본문으로 이동

자바 버전 역사

위키백과, 우리 모두의 백과사전.
(Java SE 7에서 넘어옴)

자바 언어JDK 1.0 이후 여러 차례 변경되었으며, 표준 라이브러리에 수많은 클래스와 패키지가 추가되었다. J2SE 1.4부터 자바 언어의 발전은 자바 커뮤니티 프로세스 (JCP)에 의해 관리되었으며, JCP는 Java Specification Request (JSR)를 사용하여 자바 플랫폼에 추가 및 변경 사항을 제안하고 지정한다. 이 언어는 Java Language Specification (JLS)에 의해 명시되며, JLS의 변경 사항은 JSR 901에 따라 관리된다. 2017년 9월, 자바 플랫폼의 수석 아키텍트인 마크 라인홀트는 당시 2년 주기 대신 "6개월마다 한 번의 기능 릴리스"로 릴리스 주기를 변경할 것을 제안했다.[1][2] 이 제안은 이후 모든 버전에 적용되었으며, 현재도 이 릴리스 일정을 따르고 있다.

언어 변경 외에도 자바 클래스 라이브러리에도 수년에 걸쳐 변경이 이루어졌으며, JDK 1.0의 수백 개의 클래스에서 J2SE 5의 삼천 개 이상의 클래스로 성장했다. 스윙자바2D와 같은 완전히 새로운 API들이 도입되었으며, 원래 JDK 1.0 클래스와 메서드 중 많은 부분이 더 이상 사용되지 않게 되었고, 제거된 API는 거의 없다(최소한 자바 22에서는 스레딩을 위한 API 하나가 제거되었다[3]). 일부 프로그램은 자바 플랫폼의 한 버전에서 이전 버전으로 자바 프로그램을 변환할 수 있도록 한다(예: 자바 5.0을 1.4로 백포트). (참조: 자바 백포팅 도구)

오라클의 자바 SE 지원 로드맵에 따르면,[4] 자바 SE 25 (LTS)가 2025년 9월 현재 최신 버전이며, 버전 21, 17, 11 및 8은 여전히 지원되는 (장기 지원 버전 − LTS) 버전으로, 오라클 고객은 오라클 프리미어 지원을 받게 된다. 오라클은 개발[4] 및 개인용으로 자바 8에 대한 무료 공개 업데이트를 무기한으로 계속 제공한다.[5]

OpenJDK의 경우, 광범위한 커뮤니티의 여러 조직에서 상업적 장기 지원 및 자유 소프트웨어 업데이트를 모두 제공한다.[6]

자바 25는 2025년 9월 16일에 출시되었다.[7]

릴리스 표

[편집]

JDK 1.0

[편집]
JDK 1.0
출시됨1996년 1월 23일
(29년 전)
(1996-01-23)

첫 번째 버전은 1996년 1월 23일에 출시되었다.[20][21] 첫 번째 안정 버전인 JDK 1.0.2는 자바 1이라고 불린다.[21]

포함된 내용은 다음과 같다.

  • 코어 언어 기능 (java.lang의 기본 자바 자료형, java.util의 유틸리티 클래스)
  • 그래픽 지원 (AWT 프레임워크)
  • 자바 애플릿 생성 지원
  • I/O네트워킹 라이브러리

JDK 1.1

[편집]
JDK 1.1
출시됨1997년 2월 19일
(28년 전)
(1997-02-19)

1997년 2월 19일 릴리스의 주요 추가 사항은 다음과 같다.[22]

J2SE 1.2

[편집]
J2SE 1.2
코드명Playground
출시됨1998년 12월 8일
(27년 전)
(1998-12-08)

1998년 12월 8일 릴리스 및 J2SE 5.0까지의 후속 릴리스는 소급적으로 자바 2로 리브랜딩되었으며, 기본 플랫폼을 J2EE (자바 2 플랫폼, 엔터프라이즈 에디션) 및 J2ME (자바 2 플랫폼, 마이크로 에디션)와 구별하기 위해 버전 이름 "J2SE" (자바 2 플랫폼, 스탠더드 에디션)가 JDK를 대체했다. 이는 59개의 패키지에 1520개의 클래스로 자바 플랫폼 크기를 3배로 늘린 매우 중요한 자바 릴리스였다. 주요 추가 사항은 다음과 같다.[24]

  • `strictfp` 키워드 (JVM 17에 의해 더 이상 사용되지 않는 키워드이므로 새 코드에서는 사용해서는 안 된다)
  • 스윙 그래픽 API가 코어 클래스에 통합되었다.
  • 선의 JVM은 처음으로 JIT 컴파일러를 장착했다.
  • 자바 플러그인
  • CORBA 상호 운용성을 위한 IDL 구현인 자바 IDL
  • 컬렉션 프레임워크

J2SE 1.3

[편집]
J2SE 1.3
코드명Kestrel
출시됨2000년 5월 8일
(25년 전)
(2000-05-08)

2000년 5월 8일 릴리스에서 가장 주목할 만한 변경 사항은 다음과 같다.[25][26]

자바 1.3은 마이크로소프트 윈도우 95를 공식적으로 지원하는 마지막 자바 릴리스이다.[27]

J2SE 1.4

[편집]
J2SE 1.4
코드명Merlin
출시됨2002년 2월 6일
(23년 전)
(2002-02-06)
지원 종료됨
공개2008년 10월 (2008-10)
유료2013년 2월 (2013-02)

2002년 2월 6일 릴리스는 자바 커뮤니티 프로세스JSR 59에 따라 개발된 첫 번째 자바 플랫폼 릴리스이다. 주요 변경 사항은 다음과 같다.[28][29]

자바 1.4에 대한 공개 지원 및 보안 업데이트는 2008년 10월에 종료되었다. 오라클 고객을 위한 유료 보안 업데이트는 2013년 2월에 종료되었다.[30]

Java SE 5

[편집]
Java SE 5
코드명Tiger
출시됨2004년 9월 30일
(21년 전)
(2004-09-30)
지원 종료됨
공개2009년 11월 (2009-11)
유료2015년 4월 (2015-04)

2004년 9월 30일 릴리스는 원래 1.5로 번호가 매겨졌으며, 이는 여전히 내부 버전 번호로 사용된다. 이 번호는 "J2SE의 성숙도, 안정성, 확장성 및 보안 수준을 더 잘 반영하기 위해" 변경되었다.[31] 이 버전은 JSR 176에 따라 개발되었다.

자바 SE 5는 2008년 4월 8일에 공개 업데이트 기간이 시작되었으며, 2009년 11월 3일부로 더 이상 공개 업데이트를 제공하지 않는다. 유료 오라클 고객에게는 2015년 5월까지 업데이트가 제공되었다.[4]

타이거는 몇 가지 중요한 새로운 언어 기능을 추가했다.[32][33]

  • 제네릭: 컬렉션에 대해 컴파일 시간 (정적) 자료형 안전성을 제공하고 대부분의 형 변환이 필요 없게 한다 (JSR 14에 명시됨).
  • 메타데이터: 애너테이션이라고도 불린다. 클래스 및 메서드와 같은 언어 구성에 추가 데이터를 태그할 수 있게 하며, 이 데이터는 메타데이터 인식 유틸리티에 의해 처리될 수 있다 (JSR 175에 명시됨).
  • 오토박싱/언박싱: `int`와 같은 기본 자료형Integer와 같은 기본 래퍼 클래스 간의 자동 변환 (JSR 201에 명시됨).
  • 열거형: `enum` 키워드는 자료형 안전한, 정렬된 값 목록(예: `Day.MONDAY`, `Day.TUESDAY` 등)을 생성한다. 이전에는 자료형 안전하지 않은 상수 정수나 수동으로 구성된 클래스(자료형 안전 열거형 패턴)로만 달성할 수 있었다 (JSR 201에 명시됨).
  • 가변인자: 메서드의 마지막 매개변수는 이제 자료형 이름 뒤에 세 개의 점(예: `void drawtext(String... lines)`)을 사용하여 선언할 수 있다. 호출 코드에서는 해당 자료형의 매개변수를 원하는 만큼 사용할 수 있으며, 이들은 배열에 담겨 메서드로 전달되거나, 또는 호출 코드에서 해당 자료형의 배열을 전달할 수 있다.
  • 향상된 `for each` 루프: `for` 루프 구문은 배열 또는 표준 Collection 클래스와 같은 모든 Iterable의 각 멤버를 반복하는 특수 구문으로 확장된다 (JSR 201에 명시됨).
  • 다중 스레드 자바 프로그램의 개선된 실행 시맨틱; 새로운 자바 메모리 모델은 이전 사양의 복잡성, 효율성 및 성능 문제를 해결한다.[34]
  • 정적 임포트

표준 라이브러리에도 다음과 같은 개선 사항이 있었다.

자바 5는 마이크로소프트 윈도우 98윈도우 ME를 공식적으로 지원하는 마지막 자바 릴리스이며,[36] 윈도우 비스타는 자바 SE 5가 2009년 10월에 지원 종료되기 전에 지원되었던 최신 윈도우 버전이다.[30]

자바 5 업데이트 5 (1.5.0_05)는 윈도우 95 (인터넷 익스플로러 5.5 설치된) 및 윈도우 NT 4.0에서 작동하는 마지막 자바 릴리스이다.[37]

자바 5는 애플 맥 OS X 10.4 (타이거)에서 처음 사용할 수 있었으며[38] 애플 맥 OS X 10.5 (레오파드)에 기본으로 설치된 자바 버전이었다.

자바 1.5에 대한 공개 지원 및 보안 업데이트는 2009년 11월에 종료되었다. 오라클 고객을 위한 유료 보안 업데이트는 2015년 4월에 종료되었다.

버전 변경

[편집]

이 버전은 자바 언어에 대한 새로운 버전 관리 시스템을 도입했지만, 개발자 라이브러리에는 이전 버전 관리 시스템이 계속 사용되었다.

Java 2 Platform Standard Edition의 이 릴리스를 식별하는 데 "1.5.0" 및 "5.0" 버전 번호가 모두 사용된다. "5.0" 버전은 제품 버전이며, "1.5.0"은 개발자 버전이다. "5.0"은 J2SE의 성숙도, 안정성, 확장성 및 보안 수준을 더 잘 반영하는 데 사용된다.

— "Version 1.5.0 or 5.0?", Java release notes[39]

이러한 대응은 이후 릴리스(Java 6 = JDK 1.6, Java 7 = JDK 1.7 등)를 통해 계속되었다.

Java SE 6

[편집]
Java SE 6
코드명Mustang
출시됨2006년 11월 11일
(19년 전)
(2006-11-11)
지원 종료됨
공개2013년 2월 (2013-02)

2006년 12월 11일에 릴리스된 버전부터 선은 "J2SE"라는 이름을 자바 SE로 바꾸고 버전 번호에서 ".0"을 삭제했다.[40] 개발자를 위한 내부 번호는 1.6.0으로 유지된다.[41]

이 버전은 JSR 270에 따라 개발되었다.

개발 단계에서 개선 사항 및 버그 수정이 포함된 새로운 빌드가 약 일주일마다 릴리스되었다. 베타 버전은 2006년 2월과 6월에 릴리스되었으며, 2006년 12월 11일에 최종 릴리스가 이루어졌다.

이 버전에 포함된 주요 변경 사항은 다음과 같다.[42][43]

  • 이전 Win9x 버전 지원 중단; 비공식적으로 자바 6 업데이트 7이 이러한 윈도우 버전에서 작동하는 것으로 나타난 마지막 자바 릴리스였다. 이는 업데이트 10의 주요 변경 사항 때문으로 추정된다.
  • 스크립팅 언어 지원 (JSR 223): 스크립팅 언어와의 긴밀한 통합을 위한 일반 API 및 모질라 자바스크립트 라이노 통합이 내장되어 있다.
  • 코어 플랫폼,[44][45]스윙의 극적인 성능 향상.
  • JAX-WS (JSR 224)를 통한 웹 서비스 지원 개선.
  • 자바 데이터베이스 연결 4.0 지원 (JSR 221).
  • 자바 컴파일러 API (JSR 199): 자바 프로그램이 자바 컴파일러를 프로그래밍 방식으로 선택하고 호출할 수 있도록 하는 API.
  • JAXB를 버전 2.0으로 업그레이드: StAX 파서 통합 포함.
  • 플러그형 애너테이션 지원 (JSR 269).[46]
  • API에 스윙워커 통합, 테이블 정렬 및 필터링, 진정한 스윙 더블 버퍼링 (회색 영역 효과 제거)과 같은 많은 GUI 개선 사항.
  • JVM 개선 사항에는 다음이 포함된다: 동기화컴파일러 성능 최적화, 새로운 알고리즘 및 기존 쓰레기 수집 알고리즘 업그레이드, 애플리케이션 시작 성능.

자바 6는 64비트 (코어 2 듀오 이상) 프로세서 머신에서 실행되는 Mac OS X 10.5 (레오파드)에 설치할 수 있다.[47] 자바 6는 Mac OS X 10.6 (스노우 레오파드)를 실행하는 32비트 및 64비트 머신 모두에서 지원된다.

자바 6은 2013년 2월에 지원 수명이 종료되었으며, 이때 모든 공개 업데이트(보안 업데이트 포함)가 중단될 예정이었다.[48][49] 오라클은 2013년 3월과 4월에 자바 6에 대한 두 가지 추가 업데이트를 릴리스했으며, 이는 일부 보안 취약점을 패치했다.[50][51]

자바 6 업데이트

[편집]

자바 6 출시 이후, 선과 나중에 오라클은 여러 업데이트를 출시했는데, 이는 공개 API를 변경하지 않으면서 최종 사용자 유용성을 향상시키거나 버그를 수정했다.[52]

자바 6 업데이트 표
릴리스 릴리스 날짜 주요 내용
Java SE 6 2006-12-23 이 릴리스는 웹 서비스, 스크립팅, 데이터베이스, 플러그형 애너테이션 및 보안 분야에서 많은 개선 사항을 추가했으며, 품질, 호환성 및 안정성도 향상되었다. JConsole이 이제 공식적으로 지원된다. Java DB 지원이 추가되었다.
Java SE 6 Update 1 2007-05-07
Java SE 6 Update 2 2007-07-03
Java SE 6 Update 3 2007-10-03
Java SE 6 Update 4 2008-01-14 HotSpot VM 10
Java SE 6 Update 5 2008-03-05 여러 보안 결함이 제거되었다. AOL, DigiCert 및 TrustCenter의 새 루트 인증서가 이제 포함된다.
Java SE 6 Update 6 2008-04-16 악명 높은 Xlib/XCB 잠금 어설션 문제에 대한 해결책이 도입되었다. LoginContext와 함께 Kerberos 인증을 사용할 때의 메모리 누수가 수정되었다. 여러 다른 버그도 수정되었다.
Java SE 6 Update 7 비공식적으로 Java SE 6 Update 7 (1.6.0.7)은 Win9x 운영 체제 제품군에서 작동하는 것으로 나타난 마지막 버전이다.
Java SE 6 Update 10 2008-10-15 HotSpot VM 11. 이 업데이트의 주요 변경 사항은 다음과 같다.
  • 애플릿자바 웹 스타트 애플리케이션의 배포를 용이하게 하는 자바스크립트 함수 집합인 Java Deployment Toolkit.[53]
  • 가장 일반적으로 사용되는 JRE 클래스만 포함하는 작은 설치 프로그램인 Java Kernel. 다른 패키지는 필요할 때 다운로드된다.
  • 향상된 업데이터.
  • 향상된 버전 관리 및 pack200 지원: 서버 측 지원은 더 이상 필요하지 않다.[53]
  • 콜드 시작 시간을 개선하기 위한 Java Quick Starter.
  • Direct3D 및 하드웨어 가속을 사용하여 Windows에서 자바2D 그래픽 기본 요소의 성능 향상.
  • 신스 기반의 Nimbus라는 새로운 스윙 룩 앤드 필.[54]
  • 차세대 자바 플러그인: 애플릿은 이제 별도의 프로세스에서 실행되며 웹 스타트 애플리케이션의 많은 기능을 지원한다.[53]
Java SE 6 Update 11[55] 2008-12-03 13개의 보안 수정
Java SE 6 Update 12 2008-12-12 보안 수정 없음; 64비트 자바 플러그인 (64비트 웹 브라우저 전용); 윈도우 서버 2008 지원; 그래픽 및 자바FX 애플리케이션의 성능 향상
Java SE 6 Update 13 2009-03-24 7개의 보안 수정, LDAP에서 자바 객체를 저장하고 검색하는 JNDI가 약간 수정됨, JMX 변경 (createMBeanunregisterMBean), 4개의 새 루트 인증서 추가됨
Java SE 6 Update 14 2009-05-28 HotSpot VM 14. 이 릴리스에는 JIT 컴파일러에 대한 광범위한 성능 업데이트, 64비트 머신용 압축된 포인터, 그리고 실험적인 가비지 퍼스트 (G1)라는 낮은 일시 중지 쓰레기 수집기 지원이 포함되어 있다.[56][57]

`–XX:+DoEscapeAnalysis` 옵션은 HotSpot JIT 컴파일러에게 이스케이프 분석을 사용하여 지역 객체가 대신 스택에 할당될 수 있는지 여부를 결정하도록 지시한다.

일부 개발자들은 이 릴리스에서 디버거가 무작위로 중단점을 놓치는 문제를 발견했다.[58] 선은 이 문제를 추적하는 해당 버그를 가지고 있다. 해결책은 클라이언트 및 서버 VM에 적용된다.[59] `-XX:+UseParallelGC` 옵션을 사용하면 실패를 방지할 수 있다. 또 다른 해결책은 업데이트 13으로 롤백하거나 업데이트 16으로 업그레이드하는 것이다.

Java SE 6 Update 15 2009-08-04 패치 인플레이스 기능 도입
Java SE 6 Update 16 2009-08-11 업데이트 14에서 도입된 디버거가 중단점을 놓치는 문제 수정
Java SE 6 Update 17 2009-11-04 보안 수정; 두 개의 새 루트 인증서
Java SE 6 Update 18 2010-01-13 보안 수정 없음; Hotspot VM 16; 우분투 8.04 LTS 데스크탑 에디션, SLES 11, 윈도우 7, 레드햇 엔터프라이즈 리눅스 5.3, 파이어폭스 3.6, VisualVM 1.2 지원; 자바 DB 업데이트; 많은 성능 개선
Java SE 6 Update 19 2010-03-30 보안 수정; 루트 인증서 변경: 7개 추가, 3개 제거, 5개 더 강력한 서명 알고리즘으로 교체; TLS 재협상 공격에 대한 임시 수정
Java SE 6 Update 20 2010-04-15 2개의 보안 수정
Java SE 6 Update 21 2010-07-07 보안 수정 없음; Hotspot VM 17; 레드햇 엔터프라이즈 리눅스 5.4 및 5.5, 오라클 엔터프라이즈 리눅스 4.8, 5.4, 5.5 지원; 구글 크롬 4 지원; 사용자 정의 로딩 진행률 표시기 지원; VisualVM 1.2.2
Java SE 6 Update 22 2010-10-12 29개의 보안 수정; RFC 5746 지원
Java SE 6 Update 23 2010-12-08 보안 수정 없음; Hotspot VM 19; 오른쪽에서 왼쪽으로 쓰는 언어에 대한 더 나은 지원
Java SE 6 Update 24 2011-02-15 21개의 보안 수정; 자바 DB 업데이트
Java SE 6 Update 25 2011-03-21 보안 수정 없음; Hotspot VM 20; 인터넷 익스플로러 9, 파이어폭스 4 및 크롬 10 지원; BigDecimal 개선; 서버 VM에서 클라이언트 VM과 마찬가지로 빠르게 시작하면서 더 나은 최고 성능을 달성할 수 있도록 "계층화된" 컴파일 포함 (이 기능은 `-server` 및 `-XX:+TieredCompilation` 명령 옵션을 지정하여 활성화됨)
Java SE 6 Update 26 2011-06-07 17개의 새로운 보안 수정;[60] Windows Vista SP1과 호환되는 마지막 버전
Java SE 6 Update 27 2011-08-16 보안 수정 없음; 파이어폭스 5 인증
Java SE 6 Update 29 2011-10-18 20개의 보안 수정, 다양한 버그 수정[61]
Java SE 6 Update 30 2011-12-12 보안 수정 없음; 업데이트 29의 SSL 회귀 수정; 레드햇 엔터프라이즈 리눅스 6 지원
Java SE 6 Update 31 2012-02-14 14개의 보안 수정 및 1개의 버그 수정; 윈도우 2000에서 안정적으로 작동하는 마지막 버전[62]
Java SE 6 Update 32 2012-04-26 보안 수정 없음, 다양한 버그 수정
Java SE 6 Update 33 2012-06-12 14개의 보안 수정, 향상된 VM 구성 파일 로딩
Java SE 6 Update 34 2012-08-14 보안 수정 없음, 다양한 버그 수정
Java SE 6 Update 35 2012-08-30 심층 보안 수정 포함[63]
Java SE 6 Update 37 2012-10-16 30개의 보안 수정
Java SE 6 Update 38 2012-12-11 다양한 버그 수정
Java SE 6 Update 39 2013-02-01 50개의 보안 수정
Java SE 6 Update 41 2013-02-19 5개의 보안 수정
Java SE 6 Update 43 2013-03-04 2개의 보안 수정
Java SE 6 Update 45 2013-04-16 42개의 보안 수정;[64] 기타 변경 사항; 최종 공개 업데이트.[65]
Java SE 6 Update 51 2013-06-18 공개적으로 사용 불가, Java SE Support 프로그램 및 OS X Snow Leopard, Lion & Mountain Lion용 Apple Update를 통해서만 사용 가능; 최대 40개의 보안 수정[66]
Java SE 6 Update 65 2013-10-15 공개적으로 사용 불가, Java SE Support 프로그램 및 OS X Snow Leopard, Lion & Mountain Lion용 Apple Update를 통해서만 사용 가능; 최소 11개의 중요 보안 수정[67]
Java SE 6 Update 71 2014-01-14 공개 다운로드 불가; 33개의 수정
Java SE 6 Update 75 2014-04-15 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터 No. #54를 통해서만 사용 가능; 25개의 보안 수정[68]
Java SE 6 Update 81 2014-07-15 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 11개의 보안 수정[69]
Java SE 6 Update 85 2014-10-16 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 18개의 보안 수정[70]
Java SE 6 Update 91 2015-01-21 Linux x64 및 Windows i586 버전은 Java SE 6 참조 구현으로 제공된다.[71] 다른 버전은 Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 15개의 보안 수정[72]
Java SE 6 Update 95 2015-04-14 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 14개의 보안 수정[73]
Java SE 6 Update 101 2015-07-15 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 18개의 보안 수정[74] IE 10 및 11에 대한 인증이 1.6.0_101에 도입되었다.
Java SE 6 Update 105 2015-10-20 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 17개의 보안 수정[75]
Java SE 6 Update 111 2016-01-20 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 13개의 보안 수정[76]
Java SE 6 Update 113 2016-02-05 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 1개의 보안 수정[77]
Java SE 6 Update 115 2016-04-21 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 8개의 보안 수정[78]
Java SE 6 Update 121 2016-07-19 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 15개의 보안 수정[79]
Java SE 6 Update 131 2016-10-18 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 13개의 보안 수정[80]
Java SE 6 Update 141 2017-01-17 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 17개의 보안 수정[81]
Java SE 6 Update 151 2017-04-18 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 10개의 보안 수정[82]
Java SE 6 Update 161 2017-07-18 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 5개의 보안 수정[83]
Java SE 6 Update 171 2017-10-20 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 7개의 보안 수정[84]
Java SE 6 Update 181 2018-01-16 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 12개의 보안 수정[85]
Java SE 6 Update 191 2018-04-17 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 7개의 보안 수정[86]
Java SE 6 Update 201 2018-07-17 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 3개의 보안 수정[87]
Java SE 6 Update 211 2018-10-18 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 8개의 보안 수정[88]

Java SE 7

[편집]
Java SE 7
코드명Dolphin[89]
출시됨2011년 7월 28일
(14년 전)
(2011-07-28)
지원 종료됨
공개2015년 4월 (2015-04)
유료2022년 6월 (2022-06)

자바 7은 2011년 7월 7일에 출시된[90] 주요 업데이트이며 2011년 7월 28일에 개발자에게 제공되었다.[91] 개발 기간은 13개의 마일스톤으로 구성되었으며, 2011년 6월 6일에 13개의 마일스톤 중 마지막이 완료되었다.[91][92] 평균적으로 마일스톤당 8개의 빌드 (일반적으로 개선 사항 및 버그 수정 포함)가 릴리스되었다. OpenJDK 7 프로젝트의 기능 목록에는 많은 변경 사항이 나열되어 있다.

자바 7의 추가 사항은 다음과 같다.[93]

  • switch의 문자열[98]
  • try-statement의 자동 리소스 관리 (try-with-resources statement)[99]
  • 제네릭 인스턴스 생성을 위한 개선된 자료형 추론, 다이아몬드 연산자 `<>`라고도 불린다.[100]
  • 간소화된 varargs 메서드 선언[101]
  • 이진 정수 리터럴[102]
  • 숫자 리터럴에 밑줄 허용[103]
  • 향상된 자료형 검사 기능으로 다중 예외 유형 포착 및 예외 다시 던지기[104]
  • JSR 166에 따른 동시성 유틸리티[105]
  • 여러 파일 시스템, 파일 메타데이터 및 심볼릭 링크 지원을 추가하는 새로운 파일 I/O 라이브러리 (JSR 203에 정의됨). 새로운 패키지는 `java.nio.file`, `java.nio.file.attribute` 및 `java.nio.file.spi`[106][107]
  • 컬렉션 및 객체 배열을 정렬하기 위해 합병 정렬 대신 팀소트 사용
  • 타원 곡선 암호 알고리즘에 대한 라이브러리 수준 지원
  • 최신 GPU의 특정 기능을 향상시키는 Java 2D용 XRender 파이프라인
  • 버전 6u10에서 지원되지 않는 API로 처음 구현된 그래픽 기능에 대한 새로운 플랫폼 API[108]
  • SCTP소켓 직접 프로토콜을 포함한 새로운 네트워크 프로토콜에 대한 향상된 라이브러리 수준 지원
  • 업스트림 XML유니코드 업데이트
  • 자바 배포 규칙 세트[109]

람다 (람다 함수의 자바 구현), 직소 (모듈의 자바 구현), 그리고 코인 일부는 자바 7에서 제외되어 자바 8의 일부로 릴리스되었다 (직소는 자바 9에서 릴리스되었다).[110][111]

자바 7은 2012년 4월부터 자바 8이 출시될 때까지 java.com에서 다운로드되는 기본 버전이었다.[112]

자바 7 업데이트

[편집]

오라클은 2015년 4월에 제품의 공개 가용성이 종료될 때까지 분기별로 자바 7 제품군에 대한 공개 업데이트를 발행했다.[113][114] 2022년 7월까지 계속된 JDK 7에 대한 추가 업데이트는 지원 계약이 있는 고객에게만 제공된다.[115]

자바 7 업데이트 표
릴리스 릴리스 날짜 주요 내용
Java SE 7[116] 2011-07-28 초기 릴리스; HotSpot VM 21
Java SE 7 Update 1 2011-10-18 20개의 보안 수정, 기타 버그 수정
Java SE 7 Update 2 2011-12-12 보안 수정 없음; HotSpot VM 22; 안정성 및 성능 향상; 솔라리스 11 및 파이어폭스 5 이상 지원; 자바FX가 Java SE JDK에 포함됨, 웹 배포 애플리케이션 개선
Java SE 7 Update 3 2012-02-14 14개의 보안 수정[117]
Java SE 7 Update 4 2012-04-26 보안 업데이트 없음; HotSpot VM 23; Mac OS X용 JDK 지원; 새로운 지원 쓰레기 수집기: 가비지 퍼스트 (G1)
Java SE 7 Update 5 2012-06-12 14개의 보안 수정[118]
Java SE 7 Update 6 2012-08-14 자바FX 및 자바 접근 브리지 (Java Access Bridge)가 Java SE JDK 및 JRE 설치에 포함됨, 터치 지원 모니터 및 터치 패드용 자바FX 지원, 리눅스용 자바FX 지원, ARM용 리눅스용 JDK[119]
Java SE 7 Update 7 2012-08-30 4개의 보안 수정[63]
Java SE 7 Update 9 2012-10-16 30개의 보안 취약점 수정[120]
Java SE 7 Update 10 2012-12-11 새로운 보안 기능, 브라우저에서 자바 애플리케이션 실행을 비활성화하는 기능 및 JRE가 안전하지 않을 때 경고하는 새로운 대화 상자, 버그 수정
Java SE 7 Update 11 2013-01-13 올슨 데이터 2012i; 자바FX 독립 실행형 버전이 설치된 시스템에서 플러그인 등록 문제에 대한 버그 수정, CVE-2013-0422에 대한 보안 수정;[121] 자바 애플릿 및 웹 시작 애플리케이션의 기본 보안 수준이 "중간"에서 "높음"으로 상향 조정됨
Java SE 7 Update 13[122] 2013-02-01 50개의 보안 수정
Java SE 7 Update 15 2013-02-19 5개의 보안 수정
Java SE 7 Update 17 2013-03-04 2개의 보안 수정
Java SE 7 Update 21 2013-04-16 42개의 보안 수정, 플러그인을 포함하지 않는 새로운 서버 JRE, ARM용 리눅스용 JDK를 포함한 여러 변경 사항
Java SE 7 Update 25 2013-06-18 40개의 보안 수정[66][123]을 포함한 여러 변경 사항
Java SE 7 Update 40 2013-09-10 621개의 버그 수정,[124] 새로운 보안 기능, 하드플로트 ARM, 자바 미션 컨트롤 5.2 및 레티나 디스플레이 지원[125]
Java SE 7 Update 45 2013-10-15 51개의 보안 수정;[67] 자바 애플리케이션의 무단 재배포 방지; 보안 프롬프트 복원; JAXP 변경; TimeZone.setDefault 변경
Java SE 7 Update 51 2014-01-14 36개의 보안 수정; 매니페스트 없는 JAVA 애플릿 차단 (원격 콘솔 - Java 애플릿 - IBM IMM 카드, HP iLO 카드 등) 경고 대화 상자에 "다음 버전에서 차단됩니다" 문구가 있더라도,[126][127] 17개의 버그 수정
Java SE 7 Update 55 2014-04-15 37개의 보안 수정,[68] 19개의 버그 수정[128]
Java SE 7 Update 60 2014-05-28 자바 미션 컨트롤 5.3,[129] 130개의 버그 수정[130]
Java SE 7 Update 65 2014-07-15 18개의 버그 수정
Java SE 7 Update 67 2014-08-04 1개의 버그 수정
Java SE 7 Update 71 2014-10-14 16개의 버그 수정
Java SE 7 Update 72 2014-10-14 Java SE 7의 해당 패치 세트 업데이트(PSU)로서 업데이트 71과 동일한 릴리스 날짜,[131] 36개의 버그 수정
Java SE 7 Update 75 2015-01-20 12개의 버그 수정, SSLv3 기본적으로 비활성화됨
Java SE 7 Update 76 2015-01-20 Java SE 7의 해당 패치 세트 업데이트(PSU)로서 업데이트 75와 동일한 릴리스 날짜,[131] 97개의 버그 수정
Java SE 7 Update 79 2015-04-14 21개의 보안 수정, 6개의 버그 수정,
Java SE 7 Update 80 2015-04-14 Java 7의 마지막 공개 릴리스; Java SE 7의 해당 패치 세트 업데이트(PSU)로서 업데이트 79와 동일한 릴리스 날짜, 104개의 버그 수정
Java SE 7 Update 85 2015-07-15 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 25개의 보안 수정[132]
Java SE 7 Update 91 2015-10-20 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 20개의 보안 수정[133]
Java SE 7 Update 95 2016-01-19 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 8개의 보안 수정[134]
Java SE 7 Update 97 2016-02-05 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 1개의 보안 수정[77]
Java SE 7 Update 99 2016-03-23 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 1개의 보안 수정[135]
Java SE 7 Update 101 2016-04-18 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 22개의 보안 수정[136]
Java SE 7 Update 111 2016-07-19 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 36개의 보안 수정[79]
Java SE 7 Update 121 2016-10-18 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 32개의 보안 수정[80]
Java SE 7 Update 131 2017-01-17 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 34개의 보안 수정[81]
Java SE 7 Update 141 2017-04-18 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 8개의 보안 수정[137]
Java SE 7 Update 151 2017-07-18 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 4개의 보안 수정[83]
Java SE 7 Update 161 2017-10-20 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 4개의 보안 수정[84]
Java SE 7 Update 171 2018-01-16 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 51개의 보안 수정[85]
Java SE 7 Update 181 2018-04-17 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 12개의 보안 수정[86]
Java SE 7 Update 191 2018-07-17 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 9개의 보안 수정[87]
Java SE 7 Update 201 2018-10-18 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 13개의 보안 수정[88]
Java SE 7 Update 211 2019-01-15 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 5개의 보안 수정[138]
Java SE 7 Update 221 2019-04-16 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 5개의 보안 수정[139]
Java SE 7 Update 231 2019-07-16 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 6개의 보안 수정[140]
Java SE 7 Update 241 2019-10-15 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 15개의 보안 수정[141]
Java SE 7 Update 251 2020-01-14 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 12개의 보안 수정[142]
Java SE 7 Update 261 2020-04-14 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 15개의 보안 수정[143]
Java SE 7 Update 271 2020-07-14 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 11개의 보안 수정[144]
Java SE 7 Update 281 2020-10-20 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 8개의 보안 수정[145]
Java SE 7 Update 291 2021-01-19 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 1개의 보안 수정[146]
Java SE 7 Update 301 2021-04-12 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 11개의 보안 수정[147]
Java SE 7 Update 311 2021-07-20 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 24개의 버그 수정[148]
Java SE 7 Update 321 2021-10-19 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 16개의 버그 수정[149]
Java SE 7 Update 331 2022-01-18 공개적으로 사용 불가, Java SE Support 프로그램 및 Solaris 10의 권장 패치셋 클러스터를 통해서만 사용 가능; 18개의 버그 수정[150]

Java SE 8 (LTS)

[편집]
Java SE 8
LTS 버전
코드명Spider
출시됨2014년 3월 18일
(11년 전)
(2014-03-18)
JEP 수8

자바 8은 2014년 3월 18일에 출시되었으며,[151][152] 원래 자바 7에서 계획되었지만 나중에 연기된 일부 기능을 포함했다.[153]

기능 작업은 JDK 개선 제안 (JEP) 측면에서 구성되었다.[154]

자바 8은 윈도우 XP에서 지원되지 않지만[163] JDK 8 업데이트 25부터는 윈도우 XP에서 설치 및 실행이 가능하다.[164] 이전 버전의 JDK 8은 아카이브된 ZIP 형식 파일을 다운로드하여 실행 파일을 압축 해제하는 방식으로 XP에서 실행할 수 있었다. XP에서 실행할 수 있는 자바 8의 마지막 버전은 업데이트 251이다.

2014년 10월부터 자바 8은 공식 웹사이트에서 다운로드되는 기본 버전이 되었다 (그리고 자바 9를 대체하여 다시 다운로드).[165] "오라클은 개인 사용자를 위해 자바 SE 8의 공개 업데이트 및 자동 업데이트를 무기한으로 계속 제공할 것이다."[166]

자바 8 업데이트

[편집]
자바 8 업데이트 표
릴리스 릴리스 날짜 주요 내용
Java SE 8 2014-03-18 초기 릴리스
Java SE 8 Update 5[167] 2014-04-15 `Caller-Allowable-Codebase` 속성에서 "`*`" 사용; 11개의 버그 수정
Java SE 8 Update 11[168] 2014-07-15 Java Dependency Analysis Tool (jdeps); 후원사를 비활성화하는 Java Control Panel 옵션; JAR 파일 속성 – Entry-Point; JAXP 처리 제한 속성 – maxElementDepth; 18개의 보안 버그 수정,[169] 15개의 버그 수정
Java SE 8 Update 20[170] 2014-08-19 669개의 버그 수정,[171] JMC 5.4, 문자열 중복 제거 (기본적으로 비활성화됨)
Java SE 8 Update 25[172] 2014-10-14 10개의 버그 수정
Java SE 8 Update 31[173] 2015-01-19 26개의 버그 수정; SSLv3 (기본적으로 비활성화됨)
Java SE 8 Update 40[174] 2015-03-03 645개의 버그 수정,[175] 시스템 메모리 가용성을 나타내는 데 도움이 되는 "메모리 압력" 개념 추가 (낮은 압력 = 높은 메모리, 높은 압력 = 낮은 메모리)
Java SE 8 Update 45[176] 2015-04-14 13개의 버그 수정
Java SE 8 Update 51[177] 2015-07-14 Windows 플랫폼에서 네이티브 샌드박스 지원 추가 (기본적으로 비활성화됨); 또한 25개의 보안 수정, 14개의 버그 수정
Java SE 8 Update 60[178] 2015-08-18 480개의 버그 수정[179]
Java SE 8 Update 65[180] 2015-10-20 25개의 보안 수정, 3개의 버그 수정
Java SE 8 Update 66[181] 2015-11-16 15개의 버그 수정
Java SE 8 Update 71[182] 2016-01-19 8개의 보안 수정, 5개의 버그 수정[183]
Java SE 8 Update 72[184] 2016-01-19 8개의 보안 수정, 5개의 버그 수정, 여러 개선 사항
Java SE 8 Update 73[185] 2016-02-03 1개의 보안 수정
Java SE 8 Update 74[186] 2016-02-03 1개의 보안 수정
Java SE 8 Update 77[187] 2016-03-23 1개의 보안 수정
Java SE 8 Update 91[188] 2016-04-19 9개의 보안 수정, 4개의 버그 수정 및 개선 사항
Java SE 8 Update 92[189] 2016-04-19 8u91의 보안 및 버그 수정과 76개의 추가 버그 수정; `ExitOnOutOfMemoryError` 및 `CrashOnOutOfMemoryError` 플래그가 도입됨
Java SE 8 Update 101[190] 2016-07-19 8u92의 보안 및 버그 수정과 9개의 추가 버그 수정
Java SE 8 Update 102[191] 2016-07-19 8u101의 보안 및 버그 수정과 118개의 추가 버그 수정
Java SE 8 Update 111[192] 2016-10-18 7개의 보안 수정 및 9개의 버그 수정
Java SE 8 Update 112[193] 2016-10-18 8u111에 비해 추가 기능 및 139개의 버그 수정
Java SE 8 Update 121[194] 2017-01-17 8u112에 비해 3개의 추가 기능, 5개의 변경 사항 및 11개의 버그 수정.
Java SE 8 Update 131[195] 2017-04-18 4개의 변경 사항 및 42개의 버그 수정 (2개는 주목할 만함).
Java SE 8 Update 141[196] 2017-07-18 추가 기능, 3개의 변경 사항 및 12개의 버그 수정.
Java SE 8 Update 144[197] 2017-07-26 8u141의 32개 보안 수정 및 버그 수정.
Java SE 8 Update 151[198] 2017-10-17 22개 보안 수정, 2개 참고 사항, 1개 인증서 취소, 1개 새 기능, 6개 변경 사항, 8u144의 24개 버그 수정.
Java SE 8 Update 152[199] 2017-10-17 보안 수정, 1개의 새 기능, 1개의 변경 사항, 8u151의 238개 버그 수정 (1개는 주목할 만함).
Java SE 8 Update 161[200] 2018-01-16 21개 보안 수정, 3개 새 기능, 9개 변경 사항, 8u152의 1개 버그 수정.
Java SE 8 Update 162[201] 2018-01-16 보안 수정, 63개의 버그 수정.
Java SE 8 Update 171[202] 2018-04-17 보안 수정, 버그 수정.
Java SE 8 Update 172[203] 2018-04-17 보안 수정, 버그 수정.
Java SE 8 Update 181[204] 2018-07-17 보안 수정, 버그 수정.
Java SE 8 Update 191[205] 2018-10-16 새로운 기능, 변경 사항, 버그 수정, 보안 수정.
Java SE 8 Update 192[206] 2018-10-16 새로운 기능, 변경 사항, 버그 수정.
Java SE 8 Update 201[207] 2019-01-15 새로운 기능, 변경 사항, 버그 수정.
Java SE 8 Update 202[208] 2019-01-15 새로운 기능, 변경 사항, 버그 수정.
Java SE 8 Update 211[209] 2019-04-16 새로운 기능, 변경 사항, 버그 수정. 라이선스 업데이트.
Java SE 8 Update 212[210] 2019-04-16 새로운 기능 (예: 비트코인 및 "새 일본 연호 레이와"[210]를 포함한 5가지 통화 기호), 변경 사항, 버그 수정. 라이선스 업데이트.
Java SE 8 Update 221[211] 2019-07-16 새로운 기능, 변경 사항, 버그 수정.
Java SE 8 Update 231[212] 2019-10-15 새로운 기능, 변경 사항, 버그 수정 및 18개의 보안 수정.
Java SE 8 Update 241[213] 2020-01-14 새로운 기능, 변경 사항, 버그 수정.
Java SE 8 Update 251[214] 2020-04-14 새로운 기능, 변경 사항, 버그 수정. Windows XP에서 비공식적으로 작동하는 것으로 나타난 마지막 버전.
Java SE 8 Update 261[215] 2020-07-14 새로운 기능, 변경 사항, 133개의 버그 수정.[216]
Java SE 8 Update 271[217] 2020-10-20 새로운 기능, 변경 사항, 65개의 버그 수정.[218]
Java SE 8 Update 281[219] 2021-01-19 새로운 기능, 변경 사항, 33개의 버그 수정.[220]
Java SE 8 Update 291[221] 2021-04-20 새로운 기능, 변경 사항, 28개의 버그 수정.[222]
Java SE 8 Update 301[223] 2021-07-20 새로운 기능, 변경 사항, 90개의 버그 수정.[224]
Java SE 8 Update 311[225] 2021-10-19 새로운 기능, 변경 사항, 52개의 버그 수정.[226]
Java SE 8 Update 321[227] 2022-01-18 새로운 기능, 변경 사항, 62개의 버그 수정.[228]
Java SE 8 Update 331[229] 2022-04-19 새로운 기능, 변경 사항, 37개의 버그 수정.[230]
Java SE 8 Update 333[231] 2022-05-02 1개의 변경 사항과 2개의 버그 수정이 포함된 패치.[232]
Java SE 8 Update 341[233] 2022-07-19 새로운 기능, 변경 사항, 42개의 버그 수정.[234]
Java SE 8 Update 351[235] 2022-10-18 새로운 기능, 변경 사항, 95개의 버그 수정.[236]
Java SE 8 Update 361[237] 2023-01-17 새로운 기능, 변경 사항, 버그 수정.
Java SE 8 Update 371[238] 2023-04-18
Java SE 8 Update 381[239] 2023-07-18 보안 패치
Java SE 8 Update 391[240] 2023-10-17
Java SE 8 Update 401[241] 2024-01-16
Java SE 8 Update 411[242] 2024-04-16 시간대 데이터 IANA TZ Data 2024a로 업데이트, 새로운 기능, 변경 사항, 타사 라이브러리 업데이트, 37개의 버그 수정.[242]
Java SE 8 Update 421[243] 2024-07-16
Java SE 8 Update 431[244] 2024-10-15
Java SE 8 Update 441[245] 2025-01-21
Java SE 8 Update 451[246] 2025-04-15
Java SE 8 Update 461[247] 2025-07-15
Java SE 8 Update 471[248] 2025-10-21

Java SE 9

[편집]
Java SE 9
출시됨2017년 9월 21일
(8년 전)
(2017-09-21)
JEP 수9
지원 종료됨
공개2018년 3월 (2018-03)

자바 SE 9는 2017년 9월 21일에 출시되었다.[249] 이는 자바 실행 위원회에서 프로젝트 직소의 현재 구현을 둘러싼 논쟁적인 수용[250] 때문이었으며, 오라클은 몇 가지 미해결 문제와 우려 사항을 수정하고 몇 가지 중요한 기술적 질문을 개선해야 했다. 2017년 6월 말, 자바 커뮤니티 프로세스는 제안된 모듈 시스템 계획에 대해 거의 만장일치로 합의를 표명했다.[251]

첫 번째 자바 9 릴리스 후보는 2017년 8월 9일에 출시되었다.[257] 자바 9의 첫 번째 안정 버전은 2017년 9월 21일이었다.[258]

역사

[편집]

자바원 2011에서 오라클은 2016년에 자바 9에 출시할 것으로 기대되는 기능들을 논의했다.[259] 자바 9에는 멀티 기가바이트 힙에 대한 더 나은 지원, 더 나은 네이티브 코드 통합, 다른 기본 쓰레기 수집기 (G1, "더 짧은 응답 시간"을 위해)[260]자체 튜닝 JVM이 포함될 것으로 예상되었다.[261] 2016년 초, 자바 9의 릴리스는 2017년 3월로 재조정되었고,[262] 나중에 다시 4개월 연기되어 2017년 7월로 미뤄졌다.[263]

자바 9 업데이트

[편집]
자바 9 업데이트 표
릴리스 릴리스 날짜 주요 내용
Java SE 9[264] 2017-09-21 초기 릴리스
Java SE 9.0.1[265] 2017-10-17 새로운 기능
  • org.omg.CORBA.ORB::string_to_object 메서드에 추가 IDL 스텁 유형 검사 추가 (other-libs/corba)

알려진 문제

  • OpenJDK 9에서 TLS가 기본적으로 작동하지 않음 (security-libs/java.security)

변경 사항

  • 폐기된 스위스컴 루트 인증서 "swisscomrootevca2" 제거 (security-libs/java.security)
  • 기존 공급자를 재구성하여 키 길이의 기본값에 대해 동일한 상수를 참조하도록 함 (security-libs/java.security)
  • 컬렉션은 직렬화 필터를 사용하여 배열 크기 제한 (security-libs/java.security)
  • JKS 및 JCEKS를 사용할 때 keytool에 경고 추가 (security-libs/java.security)

기타 참고 사항

  • FTP URL 핸들러의 기본 시간 제한이 변경됨 (core-libs/java.net)

버그 수정

  • 12개의 버그 수정[266]
Java SE 9.0.4[267] 2018-01-16 새로운 기능
  • 오라클 자바 SE 루트 CA 프로그램의 루트 인증서 오픈 소스화 (security-libs/javax.net.ssl)
  • TLS 세션 해시 및 확장 마스터 비밀 확장 지원 추가 (security-libs/javax.net.ssl)
  • TLS용 유한 필드 디피-헬만 임시 매개변수 협상 (security-libs/javax.net.ssl)
  • org.omg.CORBA.ORBstring_to_object 메서드에 추가 IDL 스텁 유형 검사 추가 (other-libs/corba)

변경 사항

  • RSA 공개 키 유효성 검사 (security-libs/javax.crypto)
  • 공급자 기본 키 크기 업데이트됨 (security-libs/javax.crypto)
  • 엄격한 키 생성 (security-libs/javax.crypto)
  • 내보낼 수 있는 암호화 스위트 비활성화 (security-libs/javax.net.ssl)
  • JMX 연결에는 역직렬화 필터가 필요함 (core-svc/javax.management)
  • JDK 변환, 유효성 검사 및 XPath는 시스템 기본 파서를 사용함 (xml/jaxp)

버그 수정

  • Windows 10 Creators Update에서 IE11에서 JNLP 파일이 시작되지 않음 (deploy/webstart)
  • 11개의 버그 수정[268]

Java SE 10

[편집]
Java SE 10
출시됨2018년 3월 20일
(7년 전)
(2018-03-20)
JEP 수12
지원 종료됨
공개2018년 9월 (2018-09)

OpenJDK 10은 2018년 3월 20일에 출시되었으며, 12가지 새로운 기능이 확인되었다.[269] 이 기능에는 다음이 포함된다.

이 중 첫 번째 JEP 286 지역 변수 자료형 추론은 `var` 키워드를 지역 변수에 사용할 수 있게 하며, 실제 자료형은 컴파일러가 계산한다. 이 변경으로 개발자는 변수의 자료형을 수동으로 지정하는 대신 다음을 수행할 수 있다.

var list = new ArrayList<String>(); // ArrayList<String> 추론
var stream = list.stream();         // Stream<String> 추론

자바 10 업데이트

[편집]
자바 10 업데이트 표
릴리스 릴리스 날짜 주요 내용
Java SE 10[270] 2018-03-20 초기 릴리스
Java SE 10.0.1[271] 2018-04-17 새로운 기능
  • 향상된 KeyStore 메커니즘 (security-libs/javax.crypto)

변경 사항

  • 224비트 미만의 EC 키로 서명된 XML 서명 비활성화 (security-libs/javax.xml.crypto)
  • 3DES 암호화 스위트 비활성화 (security-libs/javax.net.ssl)

기타 참고 사항

  • CipherOutputStream 사용 (security-libs/javax.crypto)

버그 수정

  • 5개의 버그 수정[272]
Java SE 10.0.2[273] 2018-07-17 변경 사항
  • filterArguments가 잘못된 순서로 여러 필터를 실행함 (core-libs/java.lang.invoke)
  • LDAP 지원 개선 (core-libs/javax.naming)
  • 더 나은 스택 워킹 (core-libs/java.io:serialization)

버그 수정

  • G1 GC 중 JVM 충돌 (hotspot/gc)
  • 7개의 버그 수정[274]

Java SE 11 (LTS)

[편집]
Java SE 11
LTS 버전
출시됨2018년 9월 25일
(7년 전)
(2018-09-25)
JEP 수17
제거된 사항
저명한 사항자바 애플릿s, 자바 웹 스타트, 자바FX, 자카르타 EE, 및 CORBA 모듈

JDK 11은 2018년 9월 25일에 출시되었으며, 현재 버그 수정이 진행 중이다. 이 버전은 LTS, 즉 장기 지원을 제공한다. 다른 기능 외에도 자바 11에는 다음과 같은 여러 새로운 기능이 포함되어 있다.[275]

이전 릴리스의 여러 기능이 삭제되었다. 특히, 자바 애플릿자바 웹 스타트는 더 이상 사용할 수 없다. 자바FX, 자카르타 EECORBA 모듈은 JDK에서 제거되었다.[276]

자바 11 업데이트

[편집]
자바 11 업데이트 표
릴리스 릴리스 날짜 주요 내용
Java SE 11[277] 2018-09-25 초기 릴리스
Java SE 11.0.1[278] 2018-10-16 변경 사항
  • 추가 TeliaSonera 루트 인증서 추가 (security-libs/java.security)
  • LDAP 지원 개선 (core-libs/javax.naming)
  • usagetracker.properties 파일의 중앙 파일 시스템 위치 변경 (core-svc)
  • 키 저장소에서 클라이언트 인증서 조회 문제 (security-libs/javax.net.ssl)
  • 모든 DES TLS 암호화 스위트 비활성화 (security-libs/javax.net.ssl)
  • 암호화 입력 개선 (security-libs/javax.crypto)

버그 수정

  • LDAPS 통신 실패 (core-libs/javax.naming)
  • 더 나은 HTTP 리디렉션 지원 (core-libs/java.net)
  • 5개의 버그 수정[279]
Java SE 11.0.2[280] 2019-01-15 알려진 문제
  • Swing에서 GTK+ 3.20 이상 버전은 지원되지 않음 (client-libs)

변경 사항

  • TLS anon 및 NULL 암호화 스위트 비활성화됨 (security-libs/javax.net.ssl)
  • Linux 네이티브 코드 검사 (hotspot/runtime)
  • JDK 11 설치 프로그램에서는 제어판의 자바 접근 브리지 확인란 옵션을 사용할 수 없음 (security-libs/javax.net.ssl)

버그 수정

  • 59개의 버그 수정[281]
Java SE 11.0.3[282] 2019-04-16 새로운 기능
  • 일본 새 시대에 대한 사각형 문자 지원 (core-libs/java.util:i18n)

알려진 문제

  • 자바 접근 브리지 설치 해결책 (install)

변경 사항

  • GlobalSign R6 루트 인증서 추가 (security-libs/java.security)
  • 시만텍 루트 CA로 고정된 TLS 서버 인증서 불신 (security-libs/javax.net.ssl)
  • 새로운 일본 시대 이름 레이와 (core-libs/java.time)
  • java.time.chrono.JapaneseEra에서 새로운 일본 시대 지원 (core-libs/java.time)

버그 수정

  • 17개의 버그 수정[283]
Java SE 11.0.4[284] 2019-07-16 새로운 기능
  • HotSpot Windows OS 탐지가 Windows Server 2019를 올바르게 식별함 (hotspot/runtime)

제거된 기능 및 옵션

  • 두 DocuSign 루트 CA 인증서 제거 (security-libs/java.security)
  • 두 Comodo 루트 CA 인증서 제거 (security-libs/java.security)
  • T-Systems Deutsche Telekom 루트 CA 2 인증서 제거 (security-libs/java.security)
  • GTE CyberTrust Global Root 제거 (security-libs/java.security)

기타 참고 사항

  • com.sun.org.apache.xml.internal.security.ignoreLineBreaks 시스템 속성 (security-libs/javax.xml.crypto)
  • ECC 구현 간 전환을 위한 시스템 속성 (security-libs/javax.crypto)

버그 수정

  • 42개의 버그 수정[285]
Java SE 11.0.5[286] 2019-10-15 새로운 기능
  • 새로운 자바 플라이트 레코더 (JFR) 보안 이벤트 (security-libs/java.security)

기타 참고 사항

  • macOS Catalina (10.15)에서 JDK 또는 JRE 사용 (docs)
  • 기본 TLS 알고리즘에서 구식 NIST EC 곡선 제거 (security-libs/javax.net.ssl)
  • SecretKeyFactory PBKDF2 구현에서 SunJCE Mac 사용 (security-libs/javax.crypto)
  • 자바 접근 브리지 설치 해결책 (install)
  • XML 서명 구현을 Apache Santuario 2.1.3으로 업데이트 (security-libs/javax.xml.crypto)
  • 시스템 속성 jdk.security.useLegacyECC가 기본적으로 비활성화됨 (security-libs/javax.crypto)
  • 사양을 준수하도록 Properties.loadFromXML 변경 (core-libs/java.util)
  • Runtime.exec 및 ProcessBuilder 인수 제한 (core-libs/java.lang)
  • Windows 2019 Core Server는 지원되지 않음 (client-libs/2d)

버그 수정

  • 83개의 버그 수정[287]
Java SE 11.0.6[288] 2020-01-14 새로운 기능
  • SASL 메커니즘 제한 허용 (security-libs/javax.security)
  • SunPKCS11 공급자가 PKCS#11 v2.40 지원으로 업그레이드됨 (security-libs/javax.crypto:pkcs11)

기타 참고 사항

  • 레지스트리 지원 개선 (core-libs/java.rmi)
  • 신뢰 앵커 인증서에 대한 새로운 검사 (security-libs/java.security)
  • 신뢰할 수 있는 TLS 서버 인증서에 정확한 일치 필요 (security-libs/java.security)
  • LuxTrust Global Root 2 인증서 추가 (install/security-libs/java.security)
  • 4개의 Amazon 루트 CA 인증서 추가 (security-libs/java.security)
  • 기본적으로 AOT 비활성화 및 관련 플래그를 실험용으로 변경 (hotspot/compiler)
  • Epsilon GC가 검사된 배열 저장을 잘못 처리함 (hotspot/gc)

버그 수정

  • SunPKCS11의 메모리 증가 문제 수정 (security-libs/javax.crypto:pkcs11)
  • 더 나은 직렬 필터 처리 (core-libs/java.io:serialization)
  • 123개의 버그 수정[289]
Java SE 11.0.7[290] 2020-04-14 새로운 기능
  • MS Cryptography Next Generation (CNG) 지원 (security-libs/javax.crypto)

버그 수정

  • 140개의 버그 수정[291]
Java SE 11.0.8[292] 2020-07-14 새로운 기능
  • TLS 서명 체계를 구성하는 새로운 시스템 속성 (security-libs/javax.net.ssl)
  • Apache Santuario 라이브러리 버전 2.1.4로 업데이트 (security-libs/javax.xml.crypto)
  • Xcode 10.1로 도구 체인 업그레이드 (infrastructure)
  • Windows용 Oracle JDK 설치 프로그램은 모든 명령 프롬프트에서 도달 가능한 경로에 실행 파일 (javac 등)을 제공함 (install/install)

제거된 기능 및 옵션

  • Comodo 루트 CA 인증서 제거 (security-libs/java.security)
  • DocuSign 루트 CA 인증서 제거 (security-libs/java.security)

기타 참고 사항

  • 향상된 직렬화 처리 (security-libs/javax.net.ssl)
  • 배열 목록 개선 (security-libs/javax.net.ssl)
  • 기본 SSLEngine은 서버 역할로 생성해야 함 (security-libs/javax.net.sslc)
  • 컨테이너 내에서 OperatingSystemMXBean 메서드는 컨테이너 특정 데이터를 반환함 (core-svc/java.lang.management)
  • 기본 SSL 세션 캐시 크기가 20480으로 업데이트됨 (security-libs)
  • NSWindowStyleMaskTexturedBackground 사용 중단됨 (client-libs/javax.swing)

버그 수정

  • 167개의 버그 수정[293]
Java SE 11.0.9[294] 2020-10-20 새로운 기능
  • TLS, CertPath 및 서명된 JAR의 약한 명명된 곡선은 기본적으로 비활성화됨 (security-libs/java.security)
  • Kerberos 교차 영역 참조 지원 (RFC 6806) (security-libs/org.ietf.jgss:krb5)
  • 인증서 체인 처리 개선 (security-libs/javax.net.ssl)
  • 약한 알고리즘이 사용될 경우 도구 경고 (security-libs/java.security)
  • krb5.conf에서 canonicalize 지원 (security-libs/org.ietf.jgss:krb5)

기타 참고 사항

  • Clear Connections를 통해 인증이 허용되는 LDAP 인증 메커니즘을 제어하는 속성 추가 (core-libs/javax.naming)
  • 3개의 SSL Corporation 루트 CA 인증서 추가 (security-libs/java.security)
  • Entrust 루트 인증 기관 – G4 인증서 추가 (security-libs/java.security)
  • 영어 및 다른 로케일 간의 지역 시간대 이름 불일치 (core-libs/java.util:i18n)
  • 프록시 클래스 향상된 지원 (core-libs/java.io:serialization)

버그 수정

  • 118개의 버그 수정[295]
Java SE 11.0.10[296] 2021-01-19 새로운 기능
  • keytool 키 쌍 생성에 -groupname 옵션 추가 (security-libs/java.security)
  • certificate_authorities 확장 지원 (security-libs/javax.net.ssl)
  • Linux의 POSIX_SPAWN 옵션 (core-libs/java.lang)
  • TLS에서 X25519 및 X448 지원 (security-libs/javax.net.ssl)
  • jarsigner가 POSIX 파일 권한 및 심볼릭 링크 속성 보존 (security-libs/java.security)

기타 참고 사항

  • Solaris용 Oracle JDK11u는 이제 harfbuzz를 설치해야 함 (client-libs/2d)
  • JDK 시간대 데이터가 tzdata2020d로 업그레이드됨 (core-libs/java.time)
  • JDK 시간대 데이터가 tzdata2020c로 업그레이드됨 (core-libs/java.time)
  • tzdata2020b의 일부로 US/Pacific-New Zone 이름 제거됨 (core-libs/java.time)

버그 수정

  • 118개의 버그 수정[297]
Java SE 11.0.11[298] 2021-04-20 새로운 기능
  • jdeps --print-module-deps가 전이적 종속성 보고 (tools)

기타 참고 사항

  • JDK 내장 JNDI RMI 및 LDAP 구현에 의한 원격 객체 재구성을 제어하는 새로운 시스템 및 보안 속성 (core-libs/javax.naming)
  • 2개의 HARICA 루트 CA 인증서 추가 (security-libs/java.security)
  • TLS 1.0 및 1.1 비활성화 (security-libs/javax.net.ssl)
  • MS950 문자 집합 인코더의 변환 테이블 수정 (core-libs/java.nio.charsets)
  • Windows에서 ProcessBuilder 따옴표 처리의 모호성 감소 (core-libs/java.lang)

버그 수정

  • 88개의 버그 수정[299]
Java SE 11.0.12[300] 2021-07-20 새로운 기능
  • 교차 영역 MSSFU 지원 (security-libs/org.ietf.jgss:krb5)
  • PKCS12 키 저장소 생성 사용자 정의 (security-libs/java.security)

제거된 기능 및 옵션

  • 1024비트 키를 가진 루트 인증서 제거 (security-libs/java.security)
  • Telia Company의 Sonera Class2 CA 인증서 제거 (security-libs/java.security)

기타 참고 사항

  • JDK RPM이 제공하는 기능 목록 업데이트됨 (install/install)
  • Windows JDK 설치 프로그램에 ADDLOCAL=ToolsFeature,SourceFeature 인수는 더 이상 필요하지 않음 (install/install)
  • 기본 PKCS12 암호화 및 MAC 알고리즘 업그레이드됨 (security-libs/java.security)
  • SHA-1 JAR 비활성화 (security-libs/java.security)
  • TLS 애플리케이션 계층 프로토콜 협상 (ALPN) 값 인코딩 개선 (security-libs/javax.net.ssl)
  • URL FTP 프로토콜 핸들러: 수동 모드에서 IPv4 주소 유효성 검사 (core-libs/java.net)

버그 수정

  • 106개의 버그 수정[301]
Java SE 11.0.13[302] 2021-10-19 새로운 기능
  • 컨텍스트 특정 역직렬화 필터 (core-libs/java.io:serialization)

제거된 기능 및 옵션

  • IdenTrust 루트 인증서 제거 (security-libs/java.security)
  • OracleJDK 11u에서 실험적 AOT 및 JIT 컴파일러 제거 (hotspot/compiler)

기타 참고 사항

  • 릴리스가 Windows 11을 올바르게 인식하지 못함 (core-libs/java.lang)
  • Linux RPM/DEB 설치 프로그램의 패키지 이름 변경 (install)
  • 기본적으로 활성화된 암호화 스위트 선호도 업데이트됨 (security-libs/javax.net.ssl)
  • JDK 내장 JNDI LDAP 구현에 의한 참조 주소 객체 재구성을 제어하는 시스템 속성 (core-libs/javax.naming)
  • 릴리스가 Windows Server 2022를 올바르게 인식하지 못함 (hotspot/runtime)
  • RFC 5280에 따라 발행 인증서의 SKID에서 AKID를 생성하도록 keytool 업데이트됨 (security-libs/java.security)
  • 보안 모듈 데이터베이스에 외부 FIPS 모듈이 있을 때 NSS로 SunPKCS11 초기화 (security-libs/javax.crypto:pkcs11)

버그 수정

  • 93개의 버그 수정[303]
Java SE 11.0.14[304] 2022-01-18 새로운 기능
  • 새로운 SunPKCS11 구성 속성 (security-libs/javax.crypto:pkcs11)
  • 시스템 속성으로 구성 가능한 확장 (security-libs/javax.net.ssl)

제거된 기능 및 옵션

  • Google의 GlobalSign 루트 인증서 제거 (security-libs/java.security)

기타 참고 사항

  • Zip 파일 시스템 공급자가 엔트리 이름 요소에 "." 또는 ".."가 포함될 때 ZipException을 throw함 (core-libs/java.nio)
  • 시간대 데이터 2021c로 업데이트 (core-libs/java.time)
  • Java GSS/Kerberos에 대한 LDAP 채널 바인딩 지원 (core-libs/javax.naming)
  • SocketExceptions는 SSLSocketImpl에서 SSLExceptions로 래핑되지 않음 (security-libs/javax.net.ssl)
  • OperatingSystemMXBean.getProcessCpuLoad가 이제 컨테이너 인식을 함 (hotspot/runtime)

버그 수정

  • 71개의 버그 수정[305]
Java SE 11.0.15[306] 2022-04-19 새로운 기능
  • SunPKCS11 공급자가 PKCS11 라이브러리에서 지원하는 경우 ChaCha20-Poly1305 암호 및 ChaCha20 KeyGenerator 지원 (security-libs/javax.crypto:pkcs11)
  • ChaCha20 및 Poly1305 TLS 암호화 스위트 (security-libs/javax.net.ssl)
  • 새로운 XML 처리 제한 (xml/jaxp)

기타 참고 사항

  • macOS KeychainStore에서 적절한 신뢰 설정이 있는 인증서만 신뢰할 수 있는 인증서 항목으로 노출 (security-libs/java.security)
  • 내장 JNDI 공급자에서 URL 문자열 구문 분석이 더 엄격해짐 (core-libs/javax.naming)

버그 수정

  • 81개의 버그 수정[307]
Java SE 11.0.16[308] 2022-07-19 새로운 기능
  • Java GSS/Kerberos를 위한 HTTPS 채널 바인딩 지원 (core-libs/java.net)

기타 참고 사항

  • java.net.InetAddress를 업데이트하여 모호한 IPv4 주소 리터럴 감지 (core-libs/java.net)
  • Firefox 102를 사용하여 다운로드할 때 JDK 번들 확장자가 잘림 (core-libs/java.io:serialization)
  • Vector는 요소의 누락된 클래스에 대해 ClassNotFoundException을 throw해야 함 (core-libs/java.io:serialization)
  • IOException이 발생하면 기본 JDK 압축기가 닫힘 (core-libs/java.util.jar)

버그 수정

  • 74개의 버그 수정[309]
Java SE 11.0.16.1[310] 2022-08-18 변경 사항
  • C2 컴파일 오류가 JVM을 예측할 수 없게 충돌시킴 (hotspot/compiler)
Java SE 11.0.17[311] 2022-10-18 새로운 기능
  • 기본 PKCS12 MAC 알고리즘 업그레이드 (security-libs/java.security)
  • 역직렬화용 JDK 플라이트 레코더 이벤트 (core-libs/java.io:serialization)

기타 참고 사항

  • SHA-1 서명된 JAR 비활성화됨 (security-libs/java.security)
  • Kerberos에서 3DES 및 RC4 사용 중단 (security-libs/org.ietf.jgss:krb5)
  • HttpURLConnection 기본 Keep Alive Timeout 구성 가능하게 함 (core-libs/java.net)
  • 활성 프로세서 수 계산 시 CPU 공유 무시됨 (hotspot/runtime)
  • 시간대 데이터 2022c로 업데이트 (core-libs/java.time)
  • com.sun.net.httpserver.HttpServer에 대한 최대 개방 연결 수를 제한하는 새로운 시스템 속성 (core-libs/java.net)

버그 수정

  • 118개의 버그 수정[312]
Java SE 11.0.18[313] 2023-01-17 새로운 기능
  • DTLS 재개는 HelloVerifyRequest 메시지 사용 (security-libs/javax.net.ssl)
  • OCSP 응답에서 RSASSA-PSS 지원 (security-libs/java.security)

알려진 문제

  • Oracle Linux 특정 x64 JDK RPM 설치 시 i686 종속성 가져옴 (install/install)

기타 참고 사항

  • FXML 자바스크립트 엔진 기본적으로 비활성화됨 (javafx/fxml)
  • 독일어 번역 리소스 번들 (globalization)
  • RPM JDK 설치 프로그램 변경 사항 (install/install)
  • Windows JDK 설치 프로그램에서 여러 JDK 업데이트의 Side-by-Side 설치 비활성화 (install/install)
  • 모든 JDK 업데이트 릴리스는 macOS의 동일한 디렉터리에 설치됨 (install/install)
  • ProcessBuilder의 따옴표로 묶인 인수 처리 오류 (core-libs/java.lang)
  • Principals 또는 Credentials 세트에서 Null 제거에 대한 LoginModule의 새로운 구현 참고 사항 (security-libs/javax.security)
  • Visual Studio 2022로 도구 체인 업그레이드 (infrastructure)
  • SSLEngine.closeInbound() 동작 변경 (security-libs/javax.net.ssl)

버그 수정

  • 58개의 버그 수정[314]
Java SE 11.0.19[315] 2023-04-18 새로운 기능
  • Windows에 기본 GSS-API 라이브러리 추가 (security-libs/org.ietf.jgss)

기타 참고 사항

  • HTML ObjectView 생성 처리를 위한 시스템 속성 (client-libs/javax.swing)
  • Certigna(Dhimyotis) 루트 CA 인증서 추가 (security-libs/java.security)
  • 기본적으로 활성화된 TLS 프로토콜에서 SSLv2Hello 및 SSLv3 제거 (security-libs/javax.net.ssl)
  • File::listRoots가 Windows의 모든 사용 가능한 드라이브를 반환하도록 변경됨 (core-libs/java.io)
  • Diffie-Hellman 및 DSA AlgorithmParameters 요청에 대한 Crypto-J 예외 (security-libs/java.security)

버그 수정

  • 55개의 버그 수정[316]
Java SE 11.0.20[317] 2023-07-18 새로운 기능
  • GB18030-2022 지원을 위한 추가 문자 허용 (core-libs/java.lang)
  • GB18030-2022 지원 (core-libs/java.nio.charsets)
  • GB 18030-2022 구현 레벨 2 지원을 명시하도록 Character 클래스의 Javadoc 업데이트 (core-libs/java.lang)
  • Windows KeyStore가 로컬 머신 위치에 대한 접근을 포함하도록 업데이트됨 (security-libs/java.security)
  • 새로운 JFR 이벤트: jdk.InitialSecurityProperty (security-libs/java.security)
  • 새로운 JFR 이벤트: jdk.SecurityProviderService (security-libs/java.security)
  • JDK는 이제 PKCS#1 형식의 RSA 키를 허용함 (security-libs/javax.crypto)

알려진 문제

  • 시스템 사용자가 공유 파일을 사용하는 경우 Windows에서 JDK 업그레이드 문제 (install)

기타 참고 사항

  • JDK-8251329 제한을 해제하는 시스템 속성 (core-libs/java.nio)
  • Linux의 누락된 /usr/java/default 심볼릭 링크 복원됨 (install/install)
  • JDK RPM 설치 시 대안 손상 (install/install)
  • TWCA 루트 CA 인증서 추가 (security-libs/java.security)
  • 4개의 GTS 루트 CA 인증서 추가 (security-libs/java.security)
  • Microsoft Corporation의 2개의 TLS 루트 CA 인증서 추가 (security-libs/java.security)
  • Java SE 사양 유지 관리 버전을 위한 시스템 속성 (core-libs/java.lang)
  • GregorianCalender.computeTime() JVM 충돌 (hotspot/compiler)
  • CDS 아카이브용 ASLR 지원 (hotspot/runtime)
  • 기본 java.security 파일 로드 실패 시 오류 발생 (security-libs/java.security)
  • 서명 파일의 최대 크기를 제어하는 새로운 시스템 속성 (security-libs/java.security)
  • ZIP64 확장 필드 유효성 검사 개선 (core-libs/java.util.jar)

버그 수정

  • 43개의 버그 수정[318]
Java SE 11.0.21[319] 2023-10-17 새로운 기능
  • -XshowSettings:locale 출력에 이제 Tzdata 버전 포함 (tools/launcher)

제거된 기능 및 옵션

  • SECOM Trust System의 RootCA1 루트 인증서 제거 (security-libs/java.security)

기타 참고 사항

  • Certigna 루트 CA 인증서 추가 (security-libs/java.security)
  • Debian JDK 설치 프로그램 변경 사항 (install/install)
  • java.security.manager 시스템 속성에 대한 Allow 및 Disallow 옵션 무시 (security-libs/java.security)
  • 기본 TLS Diffie-Hellman 그룹 크기가 1024비트에서 2048비트로 증가됨 (security-libs/javax.net.ssl)
  • 기본적으로 서버 암호화 스위트 선호도 사용 (security-libs/javax.net.ssl)

버그 수정

  • 29개의 버그 수정[320]
Java SE 11.0.22[321] 2024-01-16 새로운 기능
  • XML Signature Secure Validation Mode를 토글하는 새로운 시스템 속성 (security-libs/javax.xml.crypto)

알려진 문제

  • 제한된 범위 검사 제거로 인한 잠재적 성능 회귀 (hotspot/compiler)

기타 참고 사항

  • hs-err 및 VM.info에 프로세스-메모리 정보 추가 (hotspot/runtime)
  • 시스템 속성 jdk.jar.maxSignatureFileSize의 기본값 증가 (security-libs/java.security)
  • DigiCert, Inc.의 4개 루트 인증서 추가 (security-libs/java.security)
  • eMudhra Technologies Limited의 3개 루트 인증서 추가 (security-libs/java.security)
  • Telia Root CA v2 인증서 추가 (security-libs/java.security)
  • Let's Encrypt의 ISRG Root X2 CA 인증서 추가 (security-libs/java.security)
  • 모든 키 유형에 대해 X509KeyManager.chooseClientAlias 한 번 호출 (security-libs/javax.net.ssl)
  • hs-err 및 VM.info에 프로세스-메모리 정보 추가 (hotspot/runtime)

버그 수정

  • 29개의 버그 수정[322]
Java SE 11.0.23[323] 2024-04-16
Java SE 11.0.24[324] 2024-07-16
Java SE 11.0.25[325] 2024-10-15
Java SE 11.0.26[326] 2025-01-21
Java SE 11.0.27[327] 2025-04-15
Java SE 11.0.28[328] 2025-07-15
Java SE 11.0.29[329] 2025-10-21

Java SE 12

[편집]
Java SE 12
출시됨2019년 3월 19일
(6년 전)
(2019-03-19)
JEP 수8
추가된 사항
프리뷰Enhanced switch statements
지원 종료됨
공개2019년 9월 (2019-09)

JDK 12는 2019년 3월 19일에 출시되었다. 다른 기능 외에도 자바 12에는 다음과 같은 여러 새로운 기능이 포함되어 있다.[330]

프리뷰 기능 JEP 325는 `switch` 문을 확장하여 표현식으로도 사용할 수 있게 하며, 오른쪽에 표현식이 오는 새로운 형태의 case 레이블을 추가한다. break 문은 필요 없다. 복잡한 표현식의 경우 `yield` 문을 사용할 수 있다. 이는 자바 SE 14에서 표준이 된다.

int ndays = switch(month) {
    case JAN, MAR, MAY, JUL, AUG, OCT, DEC -> 31;
    case APR, JUN, SEP, NOV -> 30;
    case FEB -> {
        if (year % 400 == 0) yield 29;
        else if (year % 100 == 0) yield 28;
        else if (year % 4 == 0) yield 29;
        else yield 28; }
};

자바 12 업데이트

[편집]
자바 12 업데이트 표
릴리스 릴리스 날짜 주요 내용
Java SE 12[331] 2019-03-19 초기 릴리스
Java SE 12.0.1[332] 2019-04-16 알려진 문제
  • 자바 접근 브리지 설치 해결책 (install)

변경 사항

  • GlobalSign R6 루트 인증서 추가 (security-libs/java.security)
  • 새로운 일본 시대 이름 레이와 (core-libs/java.time)

버그 수정

  • 3개의 버그 수정[333]
Java SE 12.0.2[334] 2019-07-16 제거된 기능 및 옵션
  • 두 DocuSign 루트 CA 인증서 제거 (security-libs/java.security)
  • 두 Comodo 루트 CA 인증서 제거 (security-libs/java.security)
  • T-Systems Deutsche Telekom 루트 CA 2 인증서 제거 (security-libs/java.security)

기타 참고 사항

  • 자바 접근 브리지 설치 해결책 (install)

Java SE 13

[편집]
Java SE 13
출시됨2019년 9월 17일
(6년 전)
(2019-09-17)
JEP 수5
추가된 사항
프리뷰Enhanced switch statements, text blocks
지원 종료됨
공개2023년 3월 (2023-03)[335]

JDK 13은 2019년 9월 17일에 출시되었다. 자바 13에는 다음과 같은 새로운 기능과 "수백 가지의 작은 개선 사항 및 수천 가지의 버그 수정"이 포함되어 있다.[336]

JEP 355 텍스트 블록은 여러 줄 문자열 리터럴을 허용한다.

String html = """
              <html lang="en">
                  <body>
                      <p>Hello, world</p>
                  </body>
              </html>
              """;

자바 13 업데이트

[편집]
자바 13 업데이트 표
릴리스 릴리스 날짜 주요 내용
Java SE 13[337] 2019-09-17 초기 릴리스
Java SE 13.0.1[338] 2019-10-15 기타 참고 사항
  • macOS Catalina (10.15)에서 JDK 또는 JRE 사용 (docs)
  • 기본 TLS 알고리즘에서 구식 NIST EC 곡선 제거 (security-libs/javax.net.ssl)
  • macOS 다크 모드에서 텍스트 가시성 문제 (client-libs)
  • Runtime.exec 및 ProcessBuilder 인수 제한 (core-libs/java.lang)
Java SE 13.0.2[339] 2020-01-14 기타 참고 사항
  • 신뢰 앵커 인증서에 대한 새로운 검사 (security-libs/java.security)
  • 신뢰할 수 있는 TLS 서버 인증서에 정확한 일치 필요 (security-libs/java.security)
  • LuxTrust Global Root 2 인증서 추가 (security-libs/java.security)
  • 4개의 Amazon 루트 CA 인증서 추가 (security-libs/java.security)
  • 레지스트리 지원 개선 (core-libs/java.rmi)

버그 수정

  • 더 나은 직렬 필터 처리 (core-libs/java.io:serialization)
  • 29개의 버그 수정[340]

Java SE 14

[편집]
Java SE 14
출시됨2020년 3월 17일
(5년 전)
(2020-03-17)
JEP 수16
추가된 사항
저명한 사항Helpful NullPointerExceptions, enhanced switch statements
프리뷰패턴 매칭 for instanceof, records, text blocks
인큐베이팅jpackager, Foreign memory access
제거된 사항
저명한 사항Remove Concurrent Mark Sweep 쓰레기 수집기
지원 종료됨
공개2020년 9월 (2020-09)

JDK 14는 2020년 3월 17일에 출시되었다. 자바 14에는 다음과 같은 새로운 기능과 "수백 가지의 작은 개선 사항 및 수천 가지의 버그 수정"이 포함되어 있다.[341]

JEP 305, instanceof를 위한 패턴 매칭은 일반적인 `instanceof` 테스트에 이어 즉시 캐스팅되는 경우를 단순화하여 다음을 대체한다.

if (obj instanceof String) {
    String s = (String)obj;
    System.out.println(s.length());
}

다음과 같이 변경된다.

if (obj instanceof String s) {
    System.out.println(s.length());
}

JEP 359 레코드는 간단한 불변 튜플과 유사한 클래스를 쉽게 생성할 수 있게 한다.[342]

record Point(int x, int y) { }
Point p = new Point(3, 4);
System.out.println(p.x());

자바 14 업데이트

[편집]
자바 14 업데이트 표
릴리스 릴리스 날짜 주요 내용
Java SE 14[343] 2020-03-17 초기 릴리스
Java SE 14.0.1[344] 2020-04-14 버그 수정
  • 2개의 버그 수정[345]
Java SE 14.0.2[346] 2020-07-14 제거된 기능 및 옵션
  • Comodo 루트 CA 인증서 제거 (security-libs/java.security)
  • DocuSign 루트 CA 인증서 제거 (security-libs/java.security)

기타 참고 사항

  • 배열 목록 개선 (core-libs/java.util:collections)
  • 기본 SSLEngine은 서버 역할로 생성해야 함 (security-libs/javax.net.ssl)
  • 향상된 직렬화 처리 (core-libs/java.io:serialization)

버그 수정

  • 8개의 버그 수정[347]

Java SE 15

[편집]
Java SE 15
출시됨2020년 9월 15일
(5년 전)
(2020-09-15)
JEP 수14
추가된 사항
저명한 사항Hidden classes, ZGC (쓰레기 수집기), Shenandoah (쓰레기 수집기), text blocks
프리뷰Sealed classes, 패턴 매칭 of instanceof, records
인큐베이팅Foreign-memory access
제거된 사항
저명한 사항JavaScript engine, 솔라리스SPARC 포트
지원 종료됨
공개2023년 3월 (2023-03)[335]

JDK 15는 2020년 9월 15일에 출시되었다. 자바 15는 예를 들어 여러 줄 문자열 리터럴 (텍스트 블록)을 지원한다. Shenandoah 및 Z 쓰레기 수집기 (후자는 때때로 ZGC로 약칭됨)는 이제 프로덕션에서 사용할 준비가 되었다 (즉, 더 이상 실험적이라고 표시되지 않음). 오라클의 솔라리스 운영 체제 (및 SPARC CPU) 지원은 중단되었다 (Java 11 등에서는 여전히 사용 가능). Nashorn 자바스크립트 엔진이 제거되었다. 또한 일부 루트 CA 인증서도 제거되었다.

JEP 360 봉인된 클래스는 다른 클래스나 인터페이스가 자신을 확장하거나 구현하는 것을 제한하는 봉인된 클래스 및 인터페이스를 추가한다. `permits` 절에 지정된 클래스만 해당 클래스나 인터페이스를 확장할 수 있다.

package com.example.geometry;

public abstract sealed class Shape
    permits Circle, Rectangle, Square {...}

레코드와 함께 봉인된 클래스는 합계 자료형이다. 이들은 레코드, 스위치 표현식, instanceof를 위한 패턴 매칭과 같은 다른 최신 기능들과 잘 작동한다. 이들은 모두 2018년 9월 개빈 비어만브라이언 고에츠가 처음 논의한 "자바의 패턴 매칭" 시스템의 일부를 형성한다.[348]

자바 15 업데이트

[편집]
자바 15 업데이트 표
릴리스 릴리스 날짜 주요 내용
Java SE 15[349] 2020-09-15 초기 릴리스
Java SE 15.0.1[350] 2020-10-20 새로운 기능
  • 인증서 체인 처리 개선 (security-libs/javax.net.ssl)

기타 참고 사항

  • Clear Connections를 통해 인증이 허용되는 LDAP 인증 메커니즘을 제어하는 속성 추가 (core-libs/javax.naming)
  • 3개의 SSL Corporation 루트 CA 인증서 추가 (security-libs/java.security)
  • Entrust 루트 인증 기관 – G4 인증서 추가 (security-libs/java.security)
  • 프록시 클래스 향상된 지원 (core-libs/java.io:serialization)

버그 수정

  • 8개의 버그 수정[351]
Java SE 15.0.2[352] 2021-01-19 기타 참고 사항
  • JDK 시간대 데이터가 tzdata2020d로 업그레이드됨 (core-libs/java.time)
  • JDK 시간대 데이터가 tzdata2020c로 업그레이드됨 (core-libs/java.time)
  • tzdata2020b의 일부로 US/Pacific-New Zone 이름 제거됨 (core-libs/java.time)

버그 수정

  • 24개의 버그 수정[353]

Java SE 16

[편집]
Java SE 16
출시됨2021년 3월 16일
(4년 전)
(2021-03-16)
JEP 수17
추가된 사항
저명한 사항Windows/AArch64 Port, jpackager, 패턴 매칭 for instanceof, records
프리뷰Sealed classes
인큐베이팅Foreign linker, Foreign-memory access
지원 종료됨
공개2021년 9월 (2021-09)

JDK 16은 2021년 3월 16일에 출시되었다. 자바 16은 선행 컴파일 (및 Graal JIT) 옵션을 제거한다.[354] 자바 구현 자체는 C++로 작성되었고 여전히 그렇지만, 자바 16부터는 더 최신 C++14 (그러나 아직 C++17 또는 C++20 등은 아님)가 허용된다. 코드도 깃허브로 옮겨졌으며, 머큐리얼소스 제어 시스템에서 제외되었다.

자바 16 업데이트

[편집]
자바 16 업데이트 표
릴리스 릴리스 날짜 주요 내용
Java SE 16[355] 2021-03-16 초기 릴리스
Java SE 16.0.1[356] 2021-04-20 기타 참고 사항
  • JDK 내장 JNDI RMI 및 LDAP 구현에 의한 원격 객체 재구성을 제어하는 새로운 시스템 및 보안 속성 (core-libs/javax.naming)
  • 2개의 HARICA 루트 CA 인증서 추가 (security-libs/java.security)
  • Windows에서 ProcessBuilder 따옴표 처리의 모호성 감소 (core-libs/java.lang)

버그 수정

  • 30개의 버그 수정[357]
Java SE 16.0.2[358] 2021-07-20 제거된 기능 및 옵션
  • Telia Company의 Sonera Class2 CA 인증서 제거 (security-libs/java.security)

기타 참고 사항

  • JDK RPM이 제공하는 기능 목록 업데이트됨 (install/install)
  • Linux RPM/DEB 설치 프로그램의 패키지 이름 변경 (install/install)
  • URL FTP 프로토콜 핸들러: 수동 모드에서 IPv4 주소 유효성 검사 (core-libs/java.net)
  • SocketExceptions는 SSLSocketImpl에서 SSLExceptions로 래핑되지 않음 (security-libs/javax.net.ssl)
  • SHA-1 JAR 비활성화 (security-libs/java.security)

버그 수정

  • 25개의 버그 수정[359]

Java SE 17 (LTS)

[편집]
Java SE 17
LTS 버전
출시됨2021년 9월 14일
(4년 전)
(2021-09-14)
JEP 수14
추가된 사항
저명한 사항macOS/AArch64 Port, sealed classes
프리뷰Switch 패턴 매칭
인큐베이팅Vector API, Foreign function & memory API
제거된 사항
저명한 사항AOT compiler, RMI activation, `strictfp` 키워드 사용 중단됨 (JEP 306)

JDK 17은 2021년 9월에 출시되었다.[360] 자바 17은 새로운 6개월 릴리스 주기 (첫 번째는 자바 11)로 전환한 이후 두 번째 장기 지원 (LTS) 릴리스이다.

JEP 406은 instanceof 작업에 사용되는 패턴 매칭 구문을 switch 문 및 표현식으로 확장한다. 이는 인수의 유형, null 케이스 및 정제 패턴에 따라 케이스를 선택할 수 있게 한다.

Object o = ...;
return switch (o) {
        case null       -> "Null";
        case String s   -> "String %s".formatted(s);
        case Long l     -> "long %d".formatted(l);
        case Double d   -> "double %f".formatted(d);
        case Integer i && i > 0                            // refining patterns
                        -> "positive int %d".formatted(i);
        case Integer i && i == 0
                        -> "zero int %d".formatted(i);
        case Integer i && i < 0
                        -> "negative int %d".formatted(i);
        default         -> o.toString();
};

자바 17 업데이트

[편집]
자바 17 업데이트 표
릴리스 릴리스 날짜 주요 내용
Java SE 17[361] 2021-09-14 초기 릴리스
Java SE 17.0.1[362] 2021-10-19 제거된 기능 및 옵션
  • IdenTrust 루트 인증서 제거 (security-libs/java.security)

기타 사항

  • 릴리스가 윈도우 11을 올바르게 인식하지 못함 (core-libs/java.lang)
  • JDK 내장 JNDI LDAP 구현에 의한 참조 주소 객체 재구성을 제어하는 시스템 속성 (core-libs/javax.naming)
  • 릴리스가 윈도우 서버 2022를 올바르게 인식하지 못함 (hotspot/runtime)
  • OperatingSystemMXBean.getProcessCpuLoad가 이제 컨테이너 인식 (hotspot/runtime)

버그 수정

  • 21개의 버그 수정[363]
Java SE 17.0.2[364] 2022-01-18 제거된 기능 및 옵션
  • 구글의 GlobalSign 루트 인증서 제거 (security-libs/java.security)

기타 사항

  • 네트워크 드라이브에서 JDK 실행 가능 설치 프로그램 시작 전 지연 시간 연장 (install/install)
  • 윈도우에서 file.encoding 시스템 속성 값이 올바르지 않음 (core-libs/java.io)
  • 엔트리 이름 요소에 "." 또는 ".."이 포함된 경우 Zip 파일 시스템 공급자가 ZipException을 던짐 (core-libs/java.nio)
  • 시간대 데이터를 2021c로 업데이트 (core-libs/java.time)
  • ZGC: 긴 비강력 참조 처리 시간 수정 (hotspot/gc)

버그 수정

  • 164개의 버그 수정[365]
Java SE 17.0.3[366] 2022-04-19 새로운 기능
  • 새로운 XML 처리 제한 (xml/jaxp)

기타 사항

  • macOS 키체인 저장소에서 적절한 신뢰 설정이 있는 인증서만 신뢰할 수 있는 인증서 항목으로 노출 (security-libs/java.security)
  • 내장 JNDI 공급자에서 URL 문자열 파싱이 더 엄격해짐 (core-libs/javax.naming)

버그 수정

  • 48개의 버그 수정[367]
Java SE 17.0.3.1[368] 2022-05-02 변경 사항
  • java.io.File에서 윈도우 대체 데이터 스트림 지원을 비활성화하는 새로운 시스템 속성 (core-libs/java.io)

버그 수정

  • 2개의 버그 수정[369]
Java SE 17.0.4[370] 2022-07-19 새로운 기능
  • 자바 GSS/Kerberos를 위한 HTTPS 채널 바인딩 지원 (core-libs/java.net)

기타 사항

  • 모호한 IPv4 주소 리터럴을 감지하도록 java.net.InetAddress 업데이트 (core-libs/java.net)
  • IOException 발생 시 기본 JDK 압축기가 닫힘 (core-libs/java.util.jar)
  • 활성 프로세서 수 계산 시 CPU 공유 무시 (hotspot/runtime)

버그 수정

  • 60개의 버그 수정[371]
Java SE 17.0.4.1[372] 2022-08-18 변경 사항
  • C2 컴파일 오류로 JVM이 예측할 수 없이 충돌함 (hotspot/compiler)
Java SE 17.0.5[373] 2022-10-18 새로운 기능
  • 자바 GSS/Kerberos를 위한 HTTPS 채널 바인딩 지원 (core-libs/java.net)

기타 사항

  • 모호한 IPv4 주소 리터럴을 감지하도록 java.net.InetAddress 업데이트 (core-libs/java.net)
  • IOException 발생 시 기본 JDK 압축기가 닫힘 (core-libs/java.util.jar)
  • 활성 프로세서 수 계산 시 CPU 공유 무시 (hotspot/runtime)

버그 수정

  • 77개의 버그 수정[374]
Java SE 17.0.6[375] 2023-01-17 새로운 기능
  • DTLS 재개는 HelloVerifyRequest 메시지를 사용함 (security-libs/javax.net.ssl)
  • OCSP 응답에서 RSASSA-PSS 지원 (security-libs/java.security)

알려진 문제

  • 오라클 리눅스 특정 x64 JDK RPM 설치 시 i686 종속성 가져옴 (install/install)

기타 사항

  • FXML 자바스크립트 엔진 기본적으로 비활성화 (javafx/fxml)
  • 독일어 번역 리소스 번들 (globalization)
  • RPM JDK 설치 프로그램 변경 사항 (install/install)
  • 윈도우 JDK 설치 프로그램에서 여러 JDK 업데이트의 동시 설치 비활성화 (install/install)
  • 모든 JDK 업데이트 릴리스가 macOS에서 동일한 디렉토리에 설치됨 (install/install)
  • ProcessBuilder에서 인용된 인자 처리 오류 (core-libs/java.lang)
  • LoginModule에서 Principal 또는 Credentials 집합에서 Null을 제거하는 새로운 구현 노트 (security-libs/javax.security)
  • Visual Studio 2022로 툴체인 업그레이드 (infrastructure)
  • SSLEngine.closeInbound() 동작 변경 (security-libs/javax.net.ssl)

버그 수정

  • 52개의 버그 수정[376]
Java SE 17.0.7[377] 2023-04-18 새로운 기능
  • 새로운 JFR 이벤트: jdk.InitialSecurityProperty (security-libs/java.security)

기타 사항

  • HTML ObjectView 생성을 처리하는 시스템 속성 (client-libs/javax.swing)
  • Certigna(Dhimyotis) CA 인증서 추가 (security-libs/java.security)
  • 윈도우에서 File::listRoots가 사용 가능한 모든 드라이브를 반환하도록 변경됨 (core-libs/java.io)
  • 기본 java.security 파일 로드 실패 시 오류 발생 (security-libs/java.security)
  • Diffie-Hellman 및 DSA AlgorithmParameters 요청에 대한 Crypto-J 예외 (security-libs/java.security)

버그 수정

  • 69개의 버그 수정[378]
Java SE 17.0.8[379] 2023-07-18 새로운 기능
  • GB18030-2022 지원 (core-libs/java.nio.charsets)
  • 로컬 머신 위치에 대한 접근을 포함하도록 윈도우 키스토어 업데이트 (security-libs/java.security)
  • 새로운 JFR 이벤트: jdk.SecurityProviderService (security-libs/java.security)

알려진 문제

  • 시스템 사용자가 공유 파일을 사용하는 경우 윈도우에서 JDK 업그레이드 문제 (install)

기타 사항

  • JDK-8251329 제한을 끄는 시스템 속성 (core-libs/java.nio)
  • 데비안 JDK 설치 프로그램 변경 사항 (install/install)
  • 리눅스에서 누락된 /usr/java/default 심볼릭 링크 복원 (install/install)
  • JDK RPM 설치 시 대안 손상 (install/install)
  • TWCA 루트 CA 인증서 추가 (security-libs/java.security)
  • 4개의 GTS 루트 CA 인증서 추가 (security-libs/java.security)
  • Microsoft Corporation의 2개 TLS 루트 CA 인증서 추가 (security-libs/java.security)
  • GregorianCalender.computeTime() JVM 충돌 (hotspot/compiler)
  • CDS 아카이브에 대한 ASLR 지원 (hotspot/runtime)
  • 서명 파일의 최대 크기를 제어하는 새로운 시스템 속성 (security-libs/java.security)
  • ZIP64 추가 필드 유효성 검사 개선 (core-libs/java.util.jar)

버그 수정

  • 56개의 버그 수정[380]
Java SE 17.0.9[381] 2023-10-17 새로운 기능
  • -XshowSettings:locale 출력에 이제 Tzdata 버전 포함 (tools/launcher)

제거된 기능 및 옵션

  • SECOM Trust System의 RootCA1 루트 인증서 제거 (security-libs/java.security)

기타 사항

  • Certigna 루트 CA 인증서 추가 (security-libs/java.security)
  • 기본 TLS Diffie-Hellman 그룹 크기가 1024비트에서 2048비트로 증가함 (security-libs/javax.net.ssl)

버그 수정

  • 56개의 버그 수정[382]
Java SE 17.0.10[383] 2024-01-16 새로운 기능
  • XML 서명 보안 유효성 검사 모드를 전환하는 새로운 시스템 속성 (security-libs/javax.xml.crypto)

알려진 문제

  • 제한된 범위 검사 제거로 인한 잠재적 성능 저하 (hotspot/compiler)

기타 사항

  • 시스템 속성 jdk.jar.maxSignatureFileSize의 기본값 증가 (security-libs/java.security)
  • DigiCert, Inc.의 4개 루트 인증서 추가 (security-libs/java.security)
  • eMudhra Technologies Limited의 3개 루트 인증서 추가 (security-libs/java.security)
  • Telia Root CA v2 인증서 추가 (security-libs/java.security)
  • Let's Encrypt의 ISRG Root X2 CA 인증서 추가 (security-libs/java.security)
  • 모든 키 유형에 대해 X509KeyManager.chooseClientAlias 한 번 호출 (security-libs/javax.net.ssl)

버그 수정

  • 46개의 버그 수정[384]
Java SE 17.0.11[385] 2024-04-16
Java SE 17.0.12[386] 2024-07-16
Java SE 17.0.13[387] 2024-10-15
Java SE 17.0.14[388] 2025-01-21
Java SE 17.0.15[389] 2025-04-15
Java SE 17.0.16[390] 2025-07-15
Java SE 17.0.17[391] 2025-10-21

Java SE 18

[편집]
Java SE 18
출시됨2022년 3월 22일
(3년 전)
(2022-03-22)
JEP 수9
추가된 사항
저명한 사항
  • 기본 UTF
  • Javadoc 코드 스니펫
프리뷰Switch 패턴 매칭
인큐베이팅
  • Vector API
  • Foreign function & memory API
제거된 사항
저명한 사항제거를 위해 폐기된 최종화
지원 종료됨
공개2022년 9월 (2022-09)

JDK 18은 2022년 3월 22일에 릴리스되었다.[392]

자바 18 업데이트

[편집]
자바 18 업데이트 표
릴리스 릴리스 날짜 주요 내용
Java SE 18[393] 2022-03-22 초기 릴리스
Java SE 18.0.1[394] 2022-04-19 새로운 기능
  • 새로운 XML 처리 제한 (xml/jaxp)

기타 사항

  • macOS 키체인 저장소에서 적절한 신뢰 설정이 있는 인증서만 신뢰할 수 있는 인증서 항목으로 노출 (security-libs/java.security)
  • 내장 JNDI 공급자에서 URL 문자열 파싱이 더 엄격해짐 (core-libs/javax.naming)

버그 수정

  • 18개의 버그 수정[395]
Java SE 18.0.1.1[396] 2022-05-02 core-libs/java.io
  • java.io.File에서 윈도우 대체 데이터 스트림 지원을 비활성화하는 새로운 시스템 속성 (core-libs/java.io)

버그 수정

  • 2개의 버그 수정[397]
Java SE 18.0.2[398] 2022-07-19 제거된 기능 및 옵션
  • Subject::current 및 Subject::callAs API의 대체 ThreadLocal 구현 제거 (security-libs/javax.security)

기타 사항

  • 모호한 IPv4 주소 리터럴을 거부하도록 java.net.InetAddress 업데이트 (core-libs/java.net)
  • 활성 프로세서 수 계산 시 CPU 공유 무시 (hotspot/runtime)
  • 인터페이스의 객체 메서드 참조에 대해 람다 역직렬화 실패 (tools/javac)

버그 수정

  • 49개의 버그 수정[399]
Java SE 18.0.2.1[400] 2022-08-18 변경 사항
  • C2 컴파일 오류로 JVM이 예측할 수 없이 충돌함 (hotspot/compiler)

Java SE 19

[편집]
Java SE 19
출시됨2022년 9월 20일
(3년 전)
(2022-09-20)
JEP 수7
추가된 사항
프리뷰
  • 외부 함수 & 메모리 API
  • Switch 패턴 매칭
인큐베이팅
  • Vector API
  • 구조화된 동시성
지원 종료됨
공개2023년 3월 (2023-03)

JDK 19는 2022년 9월 20일에 릴리스되었다.[401]

JEP 405는 레코드 패턴을 허용하여 instanceof 연산자와 Switch 표현식의 패턴 매칭 기능을 확장하여 레코드 구성 요소를 명시적으로 참조하는 레코드 패턴을 포함하도록 한다.

record Rectangle(int x, int y, int w, int h) {}

int area(Object o) {
    if (o instanceof Rectangle(int x, int y, int w, int h)) {
        return w * h;
    }
    return 0;
}

이러한 패턴은 중첩된 패턴을 포함할 수 있으며, 레코드의 구성 요소 자체가 레코드이므로 패턴이 더 많은 객체 그래프와 일치할 수 있다.

자바 19 업데이트

[편집]
자바 19 업데이트 표
릴리스 릴리스 날짜 주요 내용
Java SE 19[402] 2022-09-20 초기 릴리스
Java SE 19.0.1[403] 2022-10-18 기타 사항
  • 시간대 데이터를 2022c로 업데이트 (core-libs/java.time)
  • com.sun.net.httpserver.HttpServer에 대한 열린 연결 수를 제한하는 새로운 시스템 속성 (core-libs/java.net)

버그 수정

  • 6개의 버그 수정[404]
Java SE 19.0.2[405] 2023-01-17 새로운 기능
  • DTLS 재개는 HelloVerifyRequest 메시지를 사용함 (security-libs/javax.net.ssl)

기타 사항

  • FXML 자바스크립트 엔진 기본적으로 비활성화 (javafx/fxml)

버그 수정

  • 28개의 버그 수정[406]

Java SE 20

[편집]
Java SE 20
출시됨2023년 3월 21일
(2년 전)
(2023-03-21)
JEP 수7
추가된 사항
인큐베이팅범위 지정 값
지원 종료됨
공개2023년 9월 (2023-09)

자바 20은 2023년 3월 21일에 릴리스되었다.[407] 모든 JEP는 인큐베이터 또는 미리보기였다.

자바 20 업데이트

[편집]
자바 20 업데이트 표
릴리스 릴리스 날짜 주요 내용
Java SE 20[408] 2023-03-21 초기 릴리스
Java SE 20.0.1[409] 2023-04-18 기타 사항
  • HTML ObjectView 생성을 처리하는 시스템 속성 (client-libs/javax.swing)
  • Certigna(Dhimyotis) CA 인증서 추가 (security-libs/java.security)
  • 윈도우에서 File::listRoots가 사용 가능한 모든 드라이브를 반환하도록 변경됨 (core-libs/java.io)

버그 수정

  • 5개의 버그 수정[410]
Java SE 20.0.2[411] 2023-07-18 새로운 기능
  • GB18030-2022 지원 (core-libs/java.nio.charsets)

알려진 문제

  • 시스템 사용자가 공유 파일을 사용하는 경우 윈도우에서 JDK 업그레이드 문제 (install)

기타 사항

  • 리눅스에서 누락된 /usr/java/default 심볼릭 링크 복원 (install/install)
  • JDK RPM 설치 시 대안 손상 (install/install)
  • TWCA 루트 CA 인증서 추가 (security-libs/java.security)
  • 4개의 GTS 루트 CA 인증서 추가 (security-libs/java.security)
  • Microsoft Corporation의 2개 TLS 루트 CA 인증서 추가 (security-libs/java.security)
  • CDS 아카이브에 대한 ASLR 지원 (hotspot/runtime)
  • 서명 파일의 최대 크기를 제어하는 새로운 시스템 속성 (security-libs/java.security)
  • ZIP64 추가 필드 유효성 검사 개선 (core-libs/java.util.jar)

버그 수정

  • 33개의 버그 수정[412]

Java SE 21 (LTS)

[편집]
Java SE 21
LTS 버전
출시됨2023년 9월 19일
(2년 전)
(2023-09-19)
JEP 수15
추가된 사항
저명한 사항레코드 패턴, Switch를 위한 패턴 매칭, 가상 스레드
프리뷰문자열 템플릿, 이름 없는 클래스 및 main 메서드
인큐베이팅Vector API

자바 21은 2023년 9월 19일에 릴리스되었다.[413] 이 릴리스에서 윈도우 x86용 자바의 32비트 버전은 제거를 위해 폐기되었다. 미리보기 및 인큐베이팅 JEP만 있었던 자바 20에 비해, 인큐베이팅 및 미리보기 단계를 졸업한 8개의 JEP를 포함하여 다음 JEP가 추가되었다. 자바 21은 자바 17에서 처음 미리보기되었던 기능(Switch 문을 위한 패턴 매칭)과 자바 19에서 미리보기되었던 기능(레코드 패턴)을 도입한다. 자바 21에 추가된 모든 JEP는 다음과 같다.

  1. JEP 430: 문자열 템플릿 (미리보기)
  2. JEP 431: 순차 컬렉션
  3. JEP 439: 세대별 ZGC
  4. JEP 440: 레코드 패턴
  5. JEP 441: Switch를 위한 패턴 매칭
  6. JEP 442: 외부 함수 & 메모리 API (세 번째 미리보기)
  7. JEP 443: 이름 없는 패턴 및 변수 (미리보기)
  8. JEP 444: 가상 스레드
  9. JEP 445: 이름 없는 클래스 및 인스턴스 Main 메서드 (미리보기)
  10. JEP 446: 범위 지정 값 (미리보기)
  11. JEP 448: Vector API (여섯 번째 인큐베이터)
  12. JEP 449: 제거를 위해 윈도우 32비트 x86 포트 폐기
  13. JEP 451: 에이전트의 동적 로딩을 금지할 준비
  14. JEP 452: 키 캡슐화 메커니즘 API
  15. JEP 453: 구조화된 동시성 (미리보기)

JEP 445는 이름 없는 클래스를 미리보기하여 상용구 코드 없이 기본적인 Main 클래스를 허용한다.

void main() {
    System.out.println("Hello, World!");
}

다음 대신:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

자바 21 업데이트

[편집]
자바 21 업데이트 표
릴리스 릴리스 날짜 주요 내용
Java SE 21[414] 2023-09-19 초기 릴리스
Java SE 21.0.1[415] 2023-10-17 기타 사항
  • Certigna 루트 CA 인증서 추가 (security-libs/java.security)
  • 시스템 속성 jdk.jar.maxSignatureFileSize의 기본값 증가 (security-libs/java.security)

버그 수정

  • 40개의 버그 수정[416]
Java SE 21.0.2[417] 2024-01-16 새로운 기능
  • TCP_KEEPxxxx 확장 소켓 옵션이 이제 윈도우 플랫폼에서 지원됨 (core-libs/java.net)

알려진 문제

  • 제한된 범위 검사 제거로 인한 잠재적 성능 저하 (hotspot/compiler)

해결된 문제

  • ZGC: Non-Default ObjectAlignmentInBytes에 대한 지원 재도입 (hotspot/compiler)

기타 사항

  • DigiCert, Inc.의 4개 루트 인증서 추가 (security-libs/java.security)
  • eMudhra Technologies Limited의 3개 루트 인증서 추가 (security-libs/java.security)
  • Telia Root CA v2 인증서 추가 (security-libs/java.security)
  • Let's Encrypt의 ISRG Root X2 CA 인증서 추가 (security-libs/java.security)
  • NMT: 릴리스 빌드에서 피크 값 사용 가능하게 함 (hotspot/runtime)
  • THP가 활성화되었지만 사용할 수 없는 경우 사용자 경고 추가 (hotspot/runtime)

버그 수정

  • 74개의 버그 수정[418]
Java SE 21.0.3[419] 2024-04-16 새로운 기능
  • 자바용 XML 보안을 3.0.3으로 업데이트 (security-libs/javax.crypto)

알려진 문제

  • 누락된 공유 라이브러리로 인해 데비안 리눅스 배포판에서 jpackage 앱 빌드 실패 가능성 (tools/jpackage)

기타 사항

  • AWT SystemTray API는 대부분의 리눅스 데스크톱에서 지원되지 않음 (client-libs/java.awt)
  • Certainly R1 및 E1 루트 인증서 추가 (security-libs/java.security)
  • 레코드 패턴에서 final을 거부하여 자바 언어 사양과 javac 정렬 (tools/javac)

타사 라이브러리 업데이트

  • FreeType 2.13.2 (java.desktop)
  • Xalan Java 2.7.3 (java.xml)
  • XML Security for Java 3.0.3 (java.xml.crypto)

버그 수정

  • 27개의 버그 수정[420]
Java SE 21.0.4[421] 2024-07-16
Java SE 21.0.5[422] 2024-10-15
Java SE 21.0.6[423] 2025-01-21
Java SE 21.0.7[424] 2025-04-15
Java SE 21.0.8[425] 2025-07-25
Java SE 21.0.9[426] 2025-07-25

Java SE 22

[편집]
Java SE 22
출시됨2024년 3월 19일
(21개월 전)
(2024-03-19)
JEP 수12
추가된 사항
저명한 사항외부 함수 및 메모리 API, 이름 없는 변수 및 패턴
프리뷰구조화된 동시성, 문자열 템플릿
인큐베이팅Vector API
지원 종료됨
공개2024년 9월 (2024-09)

자바 22는 2024년 3월 19일에 릴리스되었다.[427][428] 이 릴리스에 다음 기능 또는 JEP가 추가되었다.

  1. JEP 423: G1을 위한 영역 고정
  2. JEP 447: super(...) 이전의 문 (미리보기)
  3. JEP 454: 외부 함수 & 메모리 API
  4. JEP 456: 이름 없는 변수 및 패턴
  5. JEP 457: 클래스 파일 API (미리보기)
  6. JEP 458: 다중 파일 소스 코드 프로그램 실행
  7. JEP 459: 문자열 템플릿 (두 번째 미리보기)
  8. JEP 460: Vector API (일곱 번째 인큐베이터)
  9. JEP 461: 스트림 수집기 (미리보기)
  10. JEP 462: 구조화된 동시성 (두 번째 미리보기)
  11. JEP 463: 암묵적으로 선언된 클래스 및 인스턴스 Main 메서드 (두 번째 미리보기)
  12. JEP 464: 범위 지정 값 (두 번째 미리보기)

자바의 스레딩 구현과 관련된 APIjava.lang.Thread.countStackFrames는 제거되었다.[3][429]

Java SE 23

[편집]
Java SE 23
출시됨2024년 9월 17일
(15개월 전)
(2024-09-17)
JEP 수12
추가된 사항
저명한 사항마크다운 문서 주석
프리뷰패턴, instanceof 및 Switch의 원시 타입, 클래스 파일 API, 스트림 수집기, 모듈 임포트 선언, 암묵적으로 선언된 클래스 및 인스턴스 main 메서드, 구조화된 동시성, 범위 지정 값, 유연한 생성자 본문
인큐베이팅Vector API

자바 23은 2024년 9월 17일에 릴리스되었으며,[430][431][432] 다음 JEP가 포함되었다.

  1. JEP 455: 패턴, instanceof 및 Switch의 원시 타입 (미리보기)
  2. JEP 466: 클래스 파일 API (두 번째 미리보기)
  3. JEP 467: 마크다운 문서 주석
  4. JEP 469: Vector API (여덟 번째 인큐베이터)
  5. JEP 473: 스트림 수집기 (두 번째 미리보기)
  6. JEP 471: 제거를 위해 sun.misc.Unsafe의 메모리 접근 메서드 폐기
  7. JEP 474: ZGC: 기본값으로 세대별 모드
  8. JEP 476: 모듈 임포트 선언 (미리보기)
  9. JEP 477: 암묵적으로 선언된 클래스 및 인스턴스 Main 메서드 (세 번째 미리보기)
  10. JEP 480: 구조화된 동시성 (세 번째 미리보기)
  11. JEP 481: 범위 지정 값 (세 번째 미리보기)
  12. JEP 482: 유연한 생성자 본문 (두 번째 미리보기)

문자열 템플릿 미리보기 기능은 디자인 문제로 인해 자바 23에서 제거되었다.[433]

Java SE 24

[편집]
Java SE 24
출시됨2025년 3월 18일
(9개월 전)
(2025-03-18)
JEP 수24

자바 24 사양은 2024년 12월에 확정되었으며, 24개의 JEP가 릴리스에 포함되었고 2025년 3월 18일에 릴리스되었다.[434]

다음 JEP는 이 자바 SE 버전을 대상으로 했다.[435]

  1. JEP 404: 세대별 셰난도어 (실험적)
  2. JEP 450: 컴팩트 객체 헤더 (실험적) (이전에는 프로젝트 릴리풋으로 알려짐)
  3. JEP 472: JNI 사용 제한 준비
  4. JEP 475: G1을 위한 지연 장벽 확장
  5. JEP 478: 키 유도 함수 API (미리보기)
  6. JEP 479: 윈도우 32비트 x86 포트 제거
  7. JEP 483: AOT 클래스 로딩 및 링크
  8. JEP 484: 클래스 파일 API
  9. JEP 485: 스트림 수집기
  10. JEP 486: 보안 관리자 영구 비활성화
  11. JEP 487: 범위 지정 값 (네 번째 미리보기)
  12. JEP 488: 패턴, instanceof 및 Switch의 원시 타입 (두 번째 미리보기)
  13. JEP 489: Vector API (아홉 번째 인큐베이터)
  14. JEP 490: ZGC: 비세대 모드 제거
  15. JEP 491: 고정 없이 가상 스레드 동기화
  16. JEP 492: 유연한 생성자 본문 (세 번째 미리보기)
  17. JEP 493: JMOD 없이 런타임 이미지 연결
  18. JEP 494: 모듈 임포트 선언 (두 번째 미리보기)
  19. JEP 495: 간단한 소스 파일 및 인스턴스 Main 메서드 (네 번째 미리보기)
  20. JEP 496: 양자 저항 모듈-격자 기반 키 캡슐화 메커니즘
  21. JEP 497: 양자 저항 모듈-격자 기반 디지털 서명 알고리즘
  22. JEP 498: sun.misc.Unsafe의 메모리 접근 메서드 사용 시 경고
  23. JEP 499: 구조화된 동시성 (네 번째 미리보기)
  24. JEP 501: 제거를 위해 32비트 x86 포트 폐기

자바 SE 24는 마이크로소프트 윈도우 10의 32비트 x86 에디션을 공식적으로 지원하는 마지막 자바 릴리스이다.

Java SE 25 (LTS)

[편집]
Java SE 25
LTS 버전
출시중2025년 9월 16일
(3개월 전)
(2025-09-16)
JEP 수18
추가된 사항
저명한 사항
    • 모듈 임포트 선언
    • 유연한 생성자 본문
프리뷰
    • 패턴, instanceof 및 Switch의 원시 타입
    • 암호화 객체의 PEM 인코딩
제거된 사항
저명한 사항
    • 32비트 x86 포트

자바 25 사양은 2025년 7월에 확정되었으며, 18개의 JEP가 릴리스에 포함되었다.[436] 자바 25는 2025년 9월 16일에 릴리스되었다.[437]

  1. JEP 470: 암호화 객체의 PEM 인코딩 (미리보기)
  2. JEP 502: 안정 값 (미리보기)
  3. JEP 503: 32비트 x86 포트 제거
  4. JEP 505: 구조화된 동시성 (다섯 번째 미리보기)
  5. JEP 506: 범위 지정 값
  6. JEP 507: 패턴, instanceof 및 Switch의 원시 타입 (세 번째 미리보기)
  7. JEP 508: Vector API (열 번째 인큐베이터)
  8. JEP 509: JFR CPU 시간 프로파일링 (실험적)
  9. JEP 510: 키 유도 함수 API
  10. JEP 511: 모듈 임포트 선언
  11. JEP 512: 컴팩트 소스 파일 및 인스턴스 Main 메서드
  12. JEP 513: 유연한 생성자 본문
  13. JEP 514: AOT 명령줄 인체공학
  14. JEP 515: AOT 메서드 프로파일링
  15. JEP 518: JFR 협력적 샘플링
  16. JEP 519: 컴팩트 객체 헤더
  17. JEP 520: JFR 메서드 타이밍 및 트레이싱
  18. JEP 521: 세대별 셰난도어

미래 기능

[편집]
  • 프로젝트 발할라: 객체 ID가 없지만 특정 경우에 향상된 메모리 레이아웃(간접 참조 감소)을 얻거나 할당이 완전히 최적화될 수 있는 값 클래스.
  • 프로젝트 파나마:
    • 네이티브 코드와의 상호 운용성 개선: 자바 소스 코드가 다른 언어의 함수를 호출하고 데이터 타입을 사용할 수 있도록 하며, 오늘날보다 더 쉽고 성능이 좋은 방식으로 (프로젝트 파나마의 이 부분은 자바 22에서 JEP 454: 외부 함수 & 메모리 API 아래 안정화되고 있다).
    • Vector API, SIMD 프로그래밍을 위한 휴대용의 비교적 저수준 추상화 계층. 안정화는 프로젝트 발할라에 달려 있다.
  • 프로젝트 릴리풋: 자바 객체 헤더 크기 줄이기. 먼저 64비트로, 그 다음 32비트로.
  • JIT 모드에서 시작 시간 및 웜업 시간(최고 성능까지의 시간) 감소:
    • 프로젝트 CRaC는 전체 JVM(실행 중인 애플리케이션과 함께)의 스냅샷을 만들고 필요한 조정(파일, 소켓 등 다시 열기)으로 복원할 수 있도록 한다.
    • 프로젝트 레이든은 특히 부분 또는 (장기적으로) 전체 AOT 컴파일을 허용하여 전반적인 동적 동작을 줄여("closed-world constraints" 채택을 통해) 동적 컴파일 오버헤드를 줄인다.
  • 프로젝트 바빌론은 코드 리플렉션(즉, 코드 자체에 대한 리플렉션)이라는 반영적 프로그래밍 능력 향상을 통해 자바 언어의 적용 범위를 대체 프로그래밍 모델로 확장하는 것을 목표로 한다. 명시된 주요 목표는 GPU에서 자바 코드를 실행하는 것이며, SQL 및 기타 프로그래밍 모델은 부차적인 목표이다.

구현

[편집]

공식적으로 지원되는 자바 플랫폼은 썬에서 처음 개발되었고 현재 오라클이 관리하는 자바 SE이다. 릴리스는 OpenJDK 프로젝트를 기반으로 하며, 이는 자유 및 오픈 소스 프로젝트로 개방형 개발 모델을 따른다. 그러나 자바의 초기 사유 소프트웨어 역사로 인해 다른 자바 구현도 존재한다. 대조적으로, 일부 구현은 표준 구현보다 특정 이점을 제공하기 위해 만들어졌으며, 종종 학술 또는 기업 후원 연구의 결과였다. 많은 리눅스 배포판은 레드햇이 시작한 IcedTea 프로젝트를 통해 OpenJDK 빌드를 포함하며, 이는 더 간단한 빌드통합 환경을 제공한다.

비주얼 J++마이크로소프트 자바 가상 머신은 호환되지 않는 구현으로 만들어졌다. 썬 대 마이크로소프트 소송 이후, 마이크로소프트는 이를 포기하고 .NET 플랫폼 작업을 시작했다. 2021년에 마이크로소프트는 자바 11부터 "Microsoft Build of OpenJDK"를 배포하기 시작했으며, 이후 자바 17에 대해서도 배포했다. 이들의 빌드는 윈도우뿐만 아니라 리눅스와 MacOS도 지원한다.

아줄의 Zing과 같은 다른 사유 자바 구현도 사용할 수 있다. 아줄은 Zulu라는 이름으로 인증된 오픈 소스 OpenJDK 빌드를 제공한다.

OpenJDK 릴리스 이전에 썬의 구현이 여전히 사유였을 때, GNU 클래스패스 프로젝트는 자바 플랫폼의 자유 및 오픈 소스 구현을 제공하기 위해 만들어졌다. OpenJDK가 공식 참조 구현이 된 JDK 7 릴리스 이후, GNU 클래스패스 프로젝트의 원래 동기는 거의 완전히 사라졌으며, 마지막 릴리스는 2012년이었다.

아파치 하모니 프로젝트는 OpenJDK 릴리스 직전에 시작되었다. 썬의 초기 소스 코드 릴리스 이후에도 하모니 프로젝트는 계속되었으며, OpenJDK에 선택된 보호적 라이선스와 대조적으로 완화된 라이선스 아래 구현을 제공하기 위해 노력했다. 구글은 나중에 안드로이드를 개발하고 완화된 라이선스 아래 릴리스했다. 안드로이드는 하모니 프로젝트의 일부를 통합하고 구글의 자체 달빅 가상 머신ART로 보완했다. 아파치 하모니는 이후 폐기되었으며, 구글은 하모니 구성 요소를 OpenJDK의 동등한 구성 요소로 대체했다.

Jikes와 Jikes RVM은 모두 IBM이 개발한 오픈 소스 연구 프로젝트이다.

사유 소프트웨어로 시작했지만 현재는 오픈 소스인 다른 구현도 여러 개 존재한다. IBM은 처음에 OpenJ9를 사유 J9로 개발했지만,[438] 이후 프로젝트의 라이선스를 변경하고 이클립스 재단에 기증했다. JRockit은 오라클에 인수되어 이후 OpenJDK 버전에 통합된 사유 구현이다.

2025년 가장 일반적으로 사용되는 구현

[편집]

아마존은 성능 향상 및 보안 수정 사항을 포함하는 장기 지원을 제공하는 비용 없는 다중 플랫폼 프로덕션 준비 OpenJDK 배포판인 Corretto를 개발했다.[439] Corretto는 자바 SE 표준과 호환되는 것으로 인증되었으며, 아마존 내부에서 많은 프로덕션 서비스에 사용된다.

AdoptOpenJDK로 이전에 알려졌던 Eclipse Temurin 프로젝트는[440] 완전히 오픈 소스 빌드 팜에서 사전 빌드된 OpenJDK 바이너리를 제공한다. 이 프로젝트는 2021년에 Adoptium 워킹 그룹의 일환으로 이클립스 재단으로 전환되었으며, 고품질의 벤더 중립적인 자바 런타임 배포를 보장한다.

BellSoft Liberica JDK[441]는 임베디드 시스템 및 구형 아키텍처 지원을 포함하여 다양한 플랫폼용 빌드를 제공하는 또 다른 OpenJDK 기반 구현이다. JavaFX와 같은 추가 구성 요소를 포함하는 표준 버전과 "Full" 버전을 모두 제공한다.

SAP Machine[442]SAP의 OpenJDK 다운스트림 배포판으로, SAP 애플리케이션 및 배포에 최적화되어 있다. OpenJDK의 릴리스 일정에 맞춰 단기 및 장기 지원 릴리스를 모두 제공한다.

알리바바 Dragonwell[443]은 일부 자체 최적화가 포함된 OpenJDK의 다운스트림 버전이다. 시작 성능, 메모리 점유율 및 처리량 개선 사항을 포함한다.

GraalVM[444]은 전통적인 자바 구현과는 상당히 다르다. 오라클 랩스에서 개발되었으며, 자바 외에도 자바스크립트, 파이썬, 루비, R과 같은 여러 언어를 지원하는 다중 언어 가상 머신을 제공한다. GraalVM은 자바로 작성된 고급 JIT 컴파일러를 포함하고 AOT 컴파일을 지원하여 네이티브 실행 파일을 생성하며, 시작 시간과 메모리 점유율을 크게 줄인다.

레드햇 빌드 OpenJDK[445]레드햇 엔터프라이즈 리눅스 및 윈도우용 레드햇이 지원하는 OpenJDK 배포판으로, 레드햇의 구독 제품의 일부로 장기 지원 및 정기 업데이트를 제공한다.

Eclipse OpenJ9 JVM 및 OpenJDK 클래스 라이브러리를 기반으로 하는 Semeru Runtime은[446] IBM의 비용 없는 자바 런타임으로, 클라우드 배포에 최적화되어 있다. HotSpot 기반 구현과 비교하여 시작 시간 단축, 메모리 점유율 감소 및 처리량 개선을 제공한다.

각주

[편집]
  1. Reinhold, Mark (2017년 9월 6일). “Moving Java Forward Faster”. 2017년 9월 16일에 확인함. 
  2. “Calling 'all aboard' on the six-month Java release train”. theserverside.com. 2017년 9월 12일. 2017년 9월 16일에 확인함. 
  3. “Remove Thread.countStackFrames”. 《bugs.openjdk.org》. 2024년 4월 16일에 확인함. 
  4. “Oracle Java SE Support Roadmap”. 《oracle.com》. 
  5. Smith, Donald. “Introducing the Free Java License”. 
  6. Reinhold, Mark (2018년 8월 17일). “What does LTS mean for OpenJDK?”. 2018년 8월 28일에 확인함. 
  7. “OpenJDK JDK 25 General-Availability Release”. 
  8. “Chapter 4. The class File Format”. 
  9. “Java Virtual Machine 1.0.2 specification” (PDF). 
  10. 인용 오류: <ref> 태그가 잘못되었습니다; azul라는 이름을 가진 주석에 텍스트가 없습니다
  11. 인용 오류: <ref> 태그가 잘못되었습니다; redhat라는 이름을 가진 주석에 텍스트가 없습니다
  12. “Oracle Java SE 6 Support”. 
  13. 인용 오류: <ref> 태그가 잘못되었습니다; liberica라는 이름을 가진 주석에 텍스트가 없습니다
  14. 인용 오류: <ref> 태그가 잘못되었습니다; ibmjdk라는 이름을 가진 주석에 텍스트가 없습니다
  15. “Oracle Java SE 7 Support”. 
  16. 인용 오류: <ref> 태그가 잘못되었습니다; semeru라는 이름을 가진 주석에 텍스트가 없습니다
  17. 인용 오류: <ref> 태그가 잘못되었습니다; temurin라는 이름을 가진 주석에 텍스트가 없습니다
  18. 인용 오류: <ref> 태그가 잘못되었습니다; corretto라는 이름을 가진 주석에 텍스트가 없습니다
  19. “Support roadmap for the Microsoft Build of OpenJDK”. 
  20. “JavaSoft ships Java 1.0” (보도 자료). 2007년 3월 10일에 원본 문서에서 보존된 문서. 2008년 2월 5일에 확인함. 
  21. Ortiz, C. Enrique; Giguère, Éric (2001). 《Mobile Information Device Profile for Java 2 Micro Edition: Developer's Guide》. John Wiley & Sons. ISBN 978-0-471-03465-0. 2012년 5월 30일에 확인함. 
  22. Version 1.1 press release, Sun.
  23. Tennant, Don (1997년 3월 15일). “Taligent prepares internationalisation technology for the big time”. 《컴퓨터월드》 (IDG). 2021년 1월 16일에 확인함. 
  24. Version 1.2 press release, Sun.
  25. Version 1.3 press release, Sun.
  26. “Version 1.3 full list of changes”. 2006년 11월 7일에 원본 문서에서 보존된 문서. 
  27. “How do I run Java on a Windows 95 computer?”. 
  28. Version 1.4 press release.
  29. “Version full 1.4 list of changes”. 2007년 1월 8일에 원본 문서에서 보존된 문서. 
  30. “Java 2 Platform 5.0 and Java for Business 5.0”. 오라클 (기업). 2010. 2012년 10월 22일에 확인함. 
  31. “Version 1.5.0 or 5.0?”. Oracle. 
  32. Version 1.5 press release.
  33. Version 1.5 full list of changes.
  34. “JSR 133, 2.4 Why isn't this need met by existing specifications?”. Oracle. 
  35. Goetz, Brian (2006). 《Java Concurrency in Practice》. Addison-Wesley. xvii쪽. ISBN 0-321-34960-1. 
  36. “Java 5.0 is no longer available on Java.com”. Java.com. 2009년 11월 3일. 2016년 9월 30일에 확인함. 
  37. Lineback, Nathan. “Misc Windows 2 – Nathan's Toasty Technology page”. 2016년 9월 30일에 확인함. 
  38. Yank, Kebin (2005년 5월 3일). “Java 5 available for Mac OS X”. 《Sitepoint》. 2016년 9월 30일에 확인함. 
  39. “Version 1.5.0 or 5.0?”. Oracle.com. 2016년 4월 18일에 확인함. 
  40. Java brand naming.
  41. Version 6, Java webnotes, Sun.
  42. Version 1.6 press release.
  43. Version 1.6 full list of changes.
  44. Java Lobby.
  45. “Mustang's HotSpot”. 2007년 1월 2일에 원본 문서에서 보존된 문서. 
  46. Darcy, Joe (2008년 8월 3일). “An apt replacement”. 2009년 7월 29일에 확인함. 
  47. “Install Java 6 on Mac OS X Leopard | Gephi, open source graph visualization software”. Gephi.org. 2016년 9월 30일에 확인함. 
  48. “Oracle Java SE Support Roadmap”. 오라클 (기업). 2012년 9월 19일. 2012년 10월 22일에 확인함. 
  49. “Auto-update and update through Java Control Panel of JRE 6 will replace JRE 6 with JRE 7”. 오라클 (기업). 2013년 2월 19일. 2013년 3월 2일에 확인함. 
  50. “Java SE Development Kit 6, Update 43 Release notes”. 오라클 (기업). 2013년 3월 4일. 2013년 3월 4일에 확인함. 
  51. “Java SE Development Kit 6, Update 45 Release notes”. 오라클 (기업). 2013년 3월 4일. 2013년 3월 4일에 확인함. 
  52. “Java SE 6 Update Release Notes”. 《oracle.com》. 
  53. “Oracle Java Technologies | Oracle”. 《oracle.com》. 
  54. “Nimbus — Java.net”. 2011년 8월 20일에 원본 문서에서 보존된 문서. 2020년 2월 1일에 확인함. 
  55. “Sun Java 6 Update 11 Available Now, Waiting on JavaFX”. FindMySoft.com. 2009년 11월 13일에 확인함. 
  56. Humble, Charles (2008년 5월 13일). “JavaOne: Garbage First”. infoq.com. 2008년 9월 7일에 확인함. 
  57. Coward, Dany (2008년 11월 12일). “Java VM: Trying a new Garbage Collector for JDK 7”. 2011년 12월 8일에 원본 문서에서 보존된 문서. 2012년 1월 22일에 확인함. 
  58. “Breakpoints fail to hit under JDK 1.6.0_14”. 2009년 7월 14일에 확인함. 
  59. “Bug ID: 6862295 JDWP threadid changes during debugging session (leading to ignored breakpoints)”. 2009년 7월 22일에 확인함. 
  60. “Oracle Java SE Critical Patch Update Advisory – June 2011”. 《oracle.com》. 
  61. “Oracle Java SE Critical Patch Update Advisory – October 2011”. 《oracle.com》. 
  62. “Java 6 Update 32 fails to install...”. MSFN. 2016년 8월 16일에 원본 문서에서 보존된 문서. 2016년 7월 31일에 확인함. 
  63. “Oracle Security Alert for CVE-2012-4681”. 오라클 (기업). 
  64. “Oracle Java SE Critical Patch Update Advisory – April 2013”. 《oracle.com》. 
  65. “Why should I upgrade Java ?”. 《java.com》. 
  66. “Oracle Java Critical Patch Update – June 2013”. 《oracle.com》. 
  67. “Oracle Critical Patch Update – October 2013”. 《oracle.com》. 
  68. “Oracle Critical Patch Update – April 2014”. 《oracle.com》. 
  69. “Oracle Critical Patch Update – July 2014”. 《oracle.com》. 
  70. “Oracle Critical Patch Update – October 2014”. 《oracle.com》. 
  71. “Java SE 6 Reference Implementation”. 오라클 (기업). 2016년 10월 24일에 확인함. 
  72. “Oracle Critical Patch Update Advisory – January 2015”. 《oracle.com》. 
  73. “Oracle Critical Patch Update – April 2015”. 《oracle.com》. 
  74. “Oracle Critical Patch Update Advisory – July 2015”. 2015년 7월 15일에 확인함. 
  75. “Oracle Critical Patch Update Advisory – October 2015”. 2015년 10월 20일에 확인함. 
  76. “Oracle Critical Patch Update Advisory – January 2016”. 2016년 1월 20일에 확인함. 
  77. “Oracle Security Alert for CVE-2016-0603”. 2016년 2월 8일에 확인함. 
  78. “Oracle Critical Patch Update CVSS V2 Risk Matrices – April 2016”. 2016년 4월 21일에 확인함. 
  79. “Oracle Critical Patch Update Advisory – July 2016”. 2016년 7월 19일에 확인함. 
  80. “Oracle Critical Patch Update Advisory – October 2016”. 2016년 10월 18일에 확인함. 
  81. “Oracle Critical Patch Update Advisory – January 2017”. 2017년 1월 17일에 확인함. 
  82. “Oracle Critical Patch Update Advisory – April 2017”. 2017년 4월 18일에 확인함. 
  83. “Oracle Critical Patch Update Advisory – July 2017”. 2017년 7월 18일에 확인함. 
  84. “Oracle Critical Patch Update Advisory – October 2017”. 2017년 10월 20일에 확인함. 
  85. “Oracle Critical Patch Update Advisory – January 2018”. 2017년 10월 20일에 확인함. 
  86. “Oracle Critical Patch Update Advisory – April 2018”. 2018년 4월 17일에 확인함. 
  87. “Oracle Critical Patch Update Advisory – July 2018”. 2018년 7월 17일에 확인함. 
  88. “Oracle Critical Patch Update Advisory – October 2018”. 2018년 10월 18일에 확인함. 
  89. JDK7 보관됨 2016-12-15 - 웨이백 머신, Sun.
  90. “Introducing Java 7 Webcast: Moving Java Forward”. 오라클 (기업). 2011년 7월 7일. 2012년 5월 30일에 확인함. 
  91. “JDK 7”. 《openjdk.java.net》. 
  92. “JDK 7 Milestones”. 《OpenJDK》. 오라클 (기업). 2012년 5월 30일에 확인함. 
  93. Miller, Alex. “Java 7”. 2024년 2월 5일에 확인함. 
  94. “JSR 292: Supporting Dynamically Typed Languages on the Java Platform”. 2013년 8월 25일에 확인함. 
  95. “Compressed oops in the Hotspot JVM”. OpenJDK. 2012년 8월 1일에 확인함. 
  96. “Java HotSpot VM Options”. Oracle. 2013년 4월 11일에 확인함. 
  97. “Java Programming Language Enhancements”. Download.oracle.com. 2013년 1월 15일에 확인함. 
  98. “Strings in switch Statements”. Download.oracle.com. 2013년 1월 15일에 확인함. 
  99. “The try-with-resources Statement”. Download.oracle.com. 2013년 1월 15일에 확인함. 
  100. “Type Inference for Generic Instance Creation”. Download.oracle.com. 2013년 1월 15일에 확인함. 
  101. “Improved Compiler Warnings When Using Non-Reifiable Formal Parameters with Varargs Methods”. Download.oracle.com. 2013년 1월 15일에 확인함. 
  102. “Binary Literals”. Download.oracle.com. 2013년 1월 15일에 확인함. 
  103. “Underscores in Numeric Literals”. Download.oracle.com. 2013년 1월 15일에 확인함. 
  104. “Catching Multiple Exception Types and Rethrowing Exceptions with Improved Type Checking”. Download.oracle.com. 2013년 1월 15일에 확인함. 
  105. “Concurrency JSR-166”. 2010년 4월 16일에 확인함. 
  106. “File I/O (Featuring NIO.2)”. Java.sun.com. 2008년 3월 14일. 2013년 1월 15일에 확인함. 
  107. “Legacy File I/O Code”. Java.sun.com. 2012년 2월 28일. 2013년 1월 15일에 확인함. 
  108. “JDK 7 Features”. OpenJDK. 2011년 7월 28일. 2013년 3월 15일에 확인함. 
  109. “Introducing Deployment Rule Sets”. Oracle. 2013년 8월 21일. 2019년 1월 22일에 확인함. 
  110. “JavaOne 2011 Keynote”. Oracle. 2011년 10월 26일에 원본 문서에서 보존된 문서. 
  111. “Project Jigsaw”. OpenJDK. 
    “Java Module-System Requirements — DRAFT 12”. Oracle. 
    Krill, Paul (July 18, 2012). “Project Jigsaw delayed until Java 9”. 《인포월드. 2020년 7월 15일에 확인함. 
  112. “Java 7 Auto-Update and Java 6”. Oracle. 
  113. Critical Patch Update table shows four dates per year
  114. “End of Java 7 Public Updates”. After April 2015, Oracle will no longer post updates of Java SE 7 to its public download sites. Existing Java SE 7 downloads already posted as of April 2015 will remain accessible in the Java Archive on the Oracle Technology Network. Developers and end-users are encouraged to update to more recent Java SE versions that remain available for public download in order to continue receiving public updates and security enhancements. [..] July 2015: Updates for Java 7 are no longer available to the public. Oracle offers updates to Java 7 only for customers who have purchased Java support or have Oracle products that require Java 7. 
  115. “Oracle Java SE Support Roadmap”. Oracle Corporation. 2014년 12월 19일. 2015년 1월 7일에 확인함. 
  116. “JDK 7 Release Notes”. 《oracle.com》. 
  117. “Oracle Java SE Critical Patch Update Advisory – February 2012”. 《oracle.com》. 
  118. “Oracle Java SE Critical Patch Update Advisory – June 2012”. 《oracle.com》. 
  119. “Java SE 7 Update 6 Released”. 2012년 10월 27일에 원본 문서에서 보존된 문서. 
  120. “Oracle Java SE Critical Patch Update Advisory – October 2012”. 《oracle.com》. 
  121. “Oracle Security Alert for CVE-2013-0422”. 오라클 (기업). 
  122. “Oracle Java SE Critical Patch Update Advisory – February 2013”. 《oracle.com》. 
  123. “Oracle releases fixes for 40 Java holes – The H Security: News and Features”. 《h-online.com》. 
  124. “Java SE Development Kit 7 Update 40 Bug Fixes”. 《oracle.com》. 
  125. “Oracle JDK 7u40 released – security features, hardfloat ARM, Java Mission Control and more”. 2013년 10월 2일에 원본 문서에서 보존된 문서. 
  126. Oracle to patch Java, other products Tuesday, ZDNet,
  127. “Oracle Critical Patch Update – January 2014”. 《oracle.com》. 
  128. “Java SE Development Kit 7 Update 55 Bug Fixes”. 《oracle.com》. 
  129. “Java Mission Control 5.3 Release Notes”. 《oracle.com》. 
  130. “Java SE Development Kit 7 Update 60 Bug Fixes”. 《oracle.com》. 
  131. “Java CPU and PSU Releases Explained”. 《oracle.com》. 
  132. “Oracle Critical Patch Update Advisory – July 2015”. 《oracle.com》. 
  133. “Oracle Critical Patch Update Advisory – October 2015”. 《oracle.com》. 
  134. “Oracle Critical Patch Update – January 2016”. 《www.oracle.com》. 2016년 1월 20일에 확인함. 
  135. “Java SE Development Kit 7, Update 99”. 2016년 3월 23일에 확인함. 
  136. “Oracle Critical Patch Update Advisory – April 2016”. 2016년 4월 18일에 확인함. 
  137. “Oracle Critical Patch Update Advisory – April 2017”. 2017년 4월 18일에 확인함. 
  138. “Oracle Critical Patch Update Advisory – January 2019”. 2019년 4월 18일에 확인함. 
  139. “Oracle Critical Patch Update Advisory – April 2019”. 2019년 4월 18일에 확인함. 
  140. “Oracle Critical Patch Update Advisory – July 2019”. 2020년 1월 7일에 확인함. 
  141. “Oracle Critical Patch Update Advisory – October 2019”. 2020년 1월 7일에 확인함. 
  142. “Oracle Critical Patch Update Advisory – January 2020”. 2021년 4월 22일에 확인함. 
  143. “Oracle Critical Patch Update Advisory – April 2020”. 2021년 4월 22일에 확인함. 
  144. “Oracle Critical Patch Update Advisory – July 2020”. 2021년 4월 22일에 확인함. 
  145. “Oracle Critical Patch Update Advisory – October 2020”. 2021년 4월 22일에 확인함. 
  146. “Oracle Critical Patch Update Advisory – January 2021”. 2021년 4월 22일에 확인함. 
  147. “Oracle Critical Patch Update Advisory – April 2021”. 2021년 4월 22일에 확인함. 
  148. “Release Notes for JDK 7 and JDK 7 Update Releases”. 2022년 1월 25일에 확인함. 
  149. “Release Notes for JDK 7 and JDK 7 Update Releases”. 2022년 1월 25일에 확인함. 
  150. “Release Notes for JDK 7 and JDK 7 Update Releases”. 2022년 1월 25일에 확인함. 
  151. “Proposed new schedule for Java 8”. 2013년 4월 18일. 2013년 4월 19일에 확인함. 
  152. “JDK 8”. OpenJDK. 2013년 4월 18일. 2014년 1월 28일에 확인함. 
  153. “JDK 8 features”. OpenJDK. 2014년 1월 28일. 2014년 1월 28일에 확인함. 
  154. “JSR 337”. 2014년 1월 30일에 확인함. 
  155. “Java 7 Features”. Sun Microsystems. 2010년 2월 9일. 2010년 4월 16일에 확인함. 
  156. “Interface evolution via virtual extension methods” (PDF). Brian Goetz. 2011년 7월 20일. 2014년 3월 27일에 확인함. 
  157. “Lambda Expressions for the Java Programming Language”. Brian Goetz. 2012년 10월 23일. 2014년 3월 27일에 확인함. 
  158. “The Java Tutorials: Default Methods”. Oracle. 2017년 5월 23일에 원본 문서에서 보존된 문서. 2014년 3월 27일에 확인함. 
  159. Gafter, Neal (2006년 8월 18일). “Closures for Java”. 2008년 3월 9일에 확인함. 
  160. Gosling, James (2008년 1월 31일). “Closures”. 2011년 7월 22일에 원본 문서에서 보존된 문서. 2008년 3월 9일에 확인함. 
  161. Reinhold, Mark (2009년 11월 28일). “Closures for Java”. 2009년 11월 24일에 확인함. 
  162. Darcy, Joe. “Unsigned Integer Arithmetic API now in JDK 8”. 《blogs.oracle.com》. 
  163. “Oracle JDK 8 and JRE 8 Certified System Configurations”. 오라클 (기업). 2014년 4월 15일에 확인함. 
  164. Stahl, Henrik (2014년 7월 11일). “Updated: The future of Java on Windows XP”. 오라클 (기업). 2014년 11월 11일에 원본 문서에서 보존된 문서. 2014년 11월 11일에 확인함. JDK 8 is not supported on Windows XP. Early versions of JDK 8 had known issues with the installer on Windows XP that prevented it from installing without manual intervention. This was resolved in JDK 8 Update 25. The important point here is that we can no longer provide complete guarantees for Java on Windows XP, since the OS is no longer being updated by Microsoft. We strongly recommend that users upgrade to a newer version of Windows that is still supported by Microsoft in order to maintain a stable and secure environment. 
  165. Wieldt, Tori (2014년 10월 27일). “Java SE 8 on Java.com”. 《blog.oracle.com》. 2014년 11월 29일에 원본 문서에서 보존된 문서. 2014년 11월 24일에 확인함. 
  166. “Oracle Java SE Support Roadmap”. 2021년 2월 17일에 확인함. 
  167. “Java SE Development Kit 8, Update 5 (JDK 8u5)”. 《oracle.com》. 2014년 4월 28일에 확인함. 
  168. “Java SE Development Kit 8, Update 11 (JDK 8u11)”. 《oracle.com》. 2014년 7월 16일에 확인함. 
  169. “18 security bug fixes”. 《oracle.com》. 2014년 7월 16일에 확인함. 
  170. “Java SE Development Kit 8, Update 20 (JDK 8u20)”. 《oracle.com》. 2014년 8월 27일에 확인함. 
  171. “Java SE Development Kit 8 Update 20 Bug Fixes”. 《oracle.com》. 
  172. “Java SE Development Kit 8, Update 25 (JDK 8u25)”. 《oracle.com》. 2014년 10월 14일에 확인함. 
  173. “Java SE Development Kit 8, Update 31 (JDK 8u31)”. 《oracle.com》. 2015년 1월 21일에 확인함. 
  174. “Java SE Development Kit 8, Update 40 (JDK 8u40)”. 《oracle.com》. 2015년 3월 4일에 확인함. 
  175. “Java SE Development Kit 8 Update 40 Bug Fixes”. 《oracle.com》. 
  176. “Java SE Development Kit 8, Update 45 (JDK 8u45)”. 《oracle.com》. 2015년 4월 15일에 확인함. 
  177. “Java SE Development Kit 8, Update 51 (JDK 8u51)”. 《oracle.com》. 2015년 7월 14일에 확인함. 
  178. “Java SE Development Kit 8, Update 60 (JDK 8u60)”. 《oracle.com》. 2015년 8월 18일에 확인함. 
  179. “Java SE Development Kit 8 Update 60 Bug Fixes”. 《oracle.com》. 
  180. “Java SE Development Kit 8, Update 65 (JDK 8u65)”. 《oracle.com》. 2015년 10월 20일에 확인함. 
  181. “Java SE Development Kit 8, Update 66 Release Notes”. 《oracle.com》. 2015년 10월 22일에 확인함. 
  182. “Java SE Development Kit 8, Update 71 Release Notes”. 《oracle.com》. 2015년 1월 20일에 확인함. 
  183. “Java SE Development Kit 8 Update 71 Bug Fixes”. 《oracle.com》. 2015년 1월 20일에 확인함. 
  184. “Java SE Development Kit 8, Update 72 Release Notes”. 《oracle.com》. 
  185. “Java SE Development Kit 8, Update 73 Release Notes”. 《oracle.com》. 2016년 2월 6일에 확인함. 
  186. “Java SE Development Kit 8, Update 74 Release Notes”. 《oracle.com》. 2016년 2월 6일에 확인함. 
  187. “Java SE Development Kit 8, Update 77 Release Notes”. 《oracle.com》. 2016년 3월 23일에 확인함. 
  188. “Java SE Development Kit 8, Update 91 Release Notes”. 《oracle.com》. 2016년 3월 23일에 확인함. 
  189. “Java SE Development Kit 8, Update 92 Release Notes”. 2016년 3월 23일에 확인함. 
  190. “Java SE Development Kit 8, Update 101 Release Notes”. 2016년 7월 19일에 확인함. 
  191. “Java SE Development Kit 8, Update 102 Release Notes”. 2016년 7월 19일에 확인함. 
  192. “Java SE Development Kit 8, Update 111 Release Notes”. 2016년 10월 19일에 확인함. 
  193. “Java SE Development Kit 8, Update 112 Release Notes”. 2016년 10월 19일에 확인함. 
  194. “Java SE Development Kit 8, Update 121 Release Notes”. 2016년 1월 17일에 확인함. 
  195. “Java SE Development Kit 8, Update 131 Release Notes”. 《oracle.com》. 2017년 4월 18일에 확인함. 
  196. “Java SE Development Kit 8, Update 141 Release Notes”. 《oracle.com》. 2017년 7월 18일에 확인함. 
  197. “Java SE Development Kit 8, Update 144 Release Notes”. 《oracle.com》. 2017년 7월 26일에 확인함. 
  198. “Java SE Development Kit 8, Update 151 Release Notes”. 《oracle.com》. 2017년 10월 19일에 확인함. 
  199. “Java SE Development Kit 8, Update 152 Release Notes”. 《oracle.com》. 2017년 10월 19일에 확인함. 
  200. “Java SE Development Kit 8, Update 161 Release Notes”. 《oracle.com》. 2018년 1월 18일에 확인함. 
  201. “Java SE Development Kit 8, Update 162 Release Notes”. 《oracle.com》. 2018년 1월 16일에 확인함. 
  202. “Java SE Development Kit 8, Update 171 Release Notes”. 《oracle.com》. 2018년 4월 17일에 확인함. 
  203. “Java SE Development Kit 8, Update 172 Release Notes”. 《oracle.com》. 2018년 4월 17일에 확인함. 
  204. “Java SE Development Kit 8, Update 181 Release Notes”. 《oracle.com》. 2018년 7월 20일에 확인함. 
  205. “Java SE Development Kit 8, Update 191 Release Notes”. 《oracle.com》. 2018년 10월 16일에 확인함. 
  206. “Java SE Development Kit 8, Update 192 Release Notes”. 《oracle.com》. 2018년 10월 16일에 확인함. 
  207. “Java SE Development Kit 8, Update 201 Release Notes”. 《oracle.com》. 2019년 1월 16일에 확인함. 
  208. “Java SE Development Kit 8, Update 202 Release Notes”. 《oracle.com》. 2019년 1월 16일에 확인함. 
  209. “Java SE Development Kit 8, Update 211 Release Notes”. 《oracle.com》. 2019년 4월 16일에 확인함. 
  210. “Java SE Development Kit 8, Update 212 Release Notes”. 《oracle.com》. 2019년 4월 16일에 확인함. 
  211. “Java SE Development Kit 8, Update 221 Release Notes”. 《oracle.com》. 2019년 7월 30일에 확인함. 
  212. “Java SE Development Kit 8, Update 231 Release Notes”. 《oracle.com》. 2019년 10월 16일에 확인함. 
  213. “Java SE Development Kit 8, Update 241 Release Notes”. 《oracle.com》. 2020년 1월 18일에 확인함. 
  214. “Java SE Development Kit 8, Update 251 Release Notes”. 《oracle.com》. 2020년 4월 14일에 확인함. 
  215. “Java SE Development Kit 8, Update 261 Release Notes”. 《oracle.com》. 2022년 4월 19일에 확인함. 
  216. “JDK 8u261 Bug Fixes”. 《oracle.com》. 2022년 4월 19일에 확인함. 
  217. “Java SE Development Kit 8, Update 271 Release Notes”. 《oracle.com》. 2022년 4월 19일에 확인함. 
  218. “JDK 8u271 Bug Fixes”. 《oracle.com》. 2022년 4월 19일에 확인함. 
  219. “Java SE Development Kit 8, Update 281 Release Notes”. 《oracle.com》. 2022년 4월 19일에 확인함. 
  220. “JDK 8u281 Bug Fixes”. 《oracle.com》. 2022년 4월 19일에 확인함. 
  221. “Java SE Development Kit 8, Update 291 Release Notes”. 《oracle.com》. 2022년 4월 19일에 확인함. 
  222. “JDK 8u291 Bug Fixes”. 《oracle.com》. 2022년 4월 19일에 확인함. 
  223. “Java SE Development Kit 8, Update 301 Release Notes”. 《oracle.com》. 2022년 4월 19일에 확인함. 
  224. “JDK 8u301 Bug Fixes”. 《oracle.com》. 2022년 4월 19일에 확인함. 
  225. “Java SE Development Kit 8, Update 311 Release Notes”. 《oracle.com》. 2022년 4월 19일에 확인함. 
  226. “JDK 8u311 Bug Fixes”. 《oracle.com》. 2022년 4월 19일에 확인함. 
  227. “Java SE Development Kit 8, Update 321 Release Notes”. 《oracle.com》. 2022년 4월 19일에 확인함. 
  228. “Java SE Development Kit 8, Update 321 Bug Fixes”. 《oracle.com》. 2022년 4월 19일에 확인함. 
  229. “Java SE Development Kit 8, Update 331 Release Notes”. 《oracle.com》. 2022년 4월 19일에 확인함. 
  230. “Java SE Development Kit 8, Update 331 Bug Fixes”. 《oracle.com》. 2022년 4월 19일에 확인함. 
  231. “Java SE Development Kit 8, Update 333 Release Notes”. 《oracle.com》. 2022년 5월 2일에 확인함. 
  232. “Java SE Development Kit 8, Update 333 Bug Fixes”. 《oracle.com》. 2022년 5월 2일에 확인함. 
  233. “Java SE Development Kit 8, Update 341 Release Notes”. 《oracle.com》. 2022년 7월 30일에 확인함. 
  234. “Java SE Development Kit 8, Update 341 Bug Fixes”. 《oracle.com》. 2022년 7월 30일에 확인함. 
  235. “Java SE Development Kit 8, Update 351 Release Notes”. 《oracle.com》. 2022년 10월 18일에 확인함. 
  236. “Java SE Development Kit 8, Update 351 Bug Fixes”. 《oracle.com》. 2022년 10월 18일에 확인함. 
  237. “Java SE Development Kit 8, Update 361 Release Notes”. 《oracle.com》. 2023년 3월 24일에 확인함. 
  238. “Java SE Development Kit 8, Update 371 Release Notes”. 《oracle.com》. 
  239. “Java SE Development Kit 8, Update 381 Release Notes”. 《oracle.com》. 2023년 9월 12일에 확인함. 
  240. “Java SE Development Kit 8, Update 391 Release Notes”. 《oracle.com》. 2023년 11월 15일에 확인함. 
  241. “Java SE Development Kit 8, Update 401 Release Notes”. 《oracle.com》. 
  242. “Java SE Development Kit 8, Update 411 Release Notes”. 《oracle.com》. 
  243. “Java SE Development Kit 8, Update 421 Release Notes”. 《oracle.com》. 
  244. “Java SE Development Kit 8, Update 431 Release Notes”. 《oracle.com》. 
  245. “Java SE Development Kit 8, Update 441 Release Notes”. 《oracle.com》. 
  246. “Java SE Development Kit 8, Update 451 Release Notes”. 《oracle.com》. 
  247. “Java SE Development Kit 8, Update 461 Release Notes”. 《oracle.com》. 
  248. “Java SE Development Kit 8, Update 471 Release Notes”. 《oracle.com》. 
  249. “JDK 9”. 2017년 6월 16일에 확인함. 
  250. “Java modularity specification opposed by Red Hat, IBM is voted down”. 인포월드. 2017년 5월 9일. 2017년 6월 16일에 확인함. 
  251. Chirgwin, Richard (2017년 7월 2일). “Java 9 release back on track, community votes 'yes'. 《더 레지스터. 2017년 7월 29일에 확인함. 
  252. “Java Platform, Standard Edition Oracle JDK 9 Migration Guide”. 《docs.oracle.com》. 2018년 5월 15일에 확인함. 
  253. “OpenJDK: Project Kulla”. 
  254. Lea, Doug (2015년 1월 15일). “[concurrency-interest] jdk9 Candidate classes Flow and Submission Publisher”. 2015년 1월 20일에 원본 문서에서 보존된 문서. 2015년 12월 24일에 확인함. 
  255. “Flow (Java SE 9 & JDK 9 )”. 《docs.oracle.com》. 
  256. Reactive Streams Releases First Stable Version for JVM
  257. “JDK 9: First Release Candidate”. 2017년 8월 9일. 2017년 8월 21일에 확인함. 
  258. “Java 9: Release date and new features”. techworld.com. 2017년 7월 21일. 2017년 12월 7일에 원본 문서에서 보존된 문서. 2017년 9월 16일에 확인함. 
    “JDK 9”. 오라클 (기업). 2017년 9월 16일에 확인함. 
  259. “Mark your calendar: Java 9 finally has a release date”. 2015년 5월 7일. 
  260. “Java 9's new garbage collector: What's changing? What's staying?”. 2015년 6월 26일. 
  261. “JavaOne: JavaFX 2, Java on iOS”. 
  262. “Java 9 Release Date Now March 2017”. 2016년 1월 5일. 
  263. “JDK 9 release delayed another four months”. 더 레지스터. 2016년 10월 14일에 확인함. 
  264. “JDK 9 Release Notes”. oracle.com. 2017년 9월 21일. 
  265. “JDK 9.0.1 Release Notes”. oracle.com. 2017년 10월 17일. 
  266. “JDK 9.0.1 Bug Fixes”. 《oracle.com》. 2017년 10월 17일. 
  267. “JDK 9.0.4 Release Notes”. oracle.com. 2018년 1월 16일. 
  268. “JDK 9.0.4 Bug Fixes”. 《oracle.com》. 2018년 1월 16일. 
  269. “JDK 10”. 
  270. “JDK 10 Release Notes”. oracle.com. 2018년 3월 20일. 
  271. “JDK 10.0.1 Release Notes”. oracle.com. 2018년 4월 17일. 
  272. “JDK 10.0.1 Bug Fixes”. oracle.com. 2018년 4월 17일. 
  273. “JDK 10.0.2 Release Notes”. oracle.com. 2018년 7월 17일. 
  274. “JDK 10.0.2 Bug Fixes”. oracle.com. 2018년 7월 17일. 
  275. OpenJDK. “JDK 11”. 
  276. “Oracle JDK Migration Guide”. 《Oracle Help Center》. 2018년 9월 27일에 확인함. 
  277. “JDK 11”. oracle.com. 2018년 9월 25일. 
  278. “JDK 11.0.1 Release Notes”. oracle.com. 2018년 10월 16일. 
  279. “JDK 11.0.1 Bug Fixes”. 《oracle.com》. 2018년 10월 16일. 
  280. “JDK 11.0.2 Release Notes”. oracle.com. 2019년 1월 15일. 
  281. “JDK 11.0.2 Bug Fixes”. 《oracle.com》. 2019년 1월 15일. 
  282. “JDK 11.0.3 Release Notes”. oracle.com. 2019년 4월 16일. 
  283. “JDK 11.0.3 Bug Fixes”. 《oracle.com》. 2019년 4월 16일. 
  284. “JDK 11.0.4 Release Notes”. oracle.com. 2019년 7월 16일. 
  285. “JDK 11.0.4 Bug Fixes”. 《oracle.com》. 2019년 7월 16일. 
  286. “JDK 11.0.5 Release Notes”. oracle.com. 2019년 10월 15일. 
  287. “JDK 11.0.5 Bug Fixes”. 《oracle.com》. 2019년 10월 15일. 
  288. “JDK 11.0.6 Release Notes”. oracle.com. 2020년 1월 14일. 
  289. “JDK 11.0.6 Bug Fixes”. 《oracle.com》. 2020년 1월 14일. 
  290. “JDK 11.0.7 Release Notes”. oracle.com. 2020년 4월 14일. 
  291. “JDK 11.0.7 Bug Fixes”. 《oracle.com》. 2020년 4월 14일. 
  292. “JDK 11.0.8 Release Notes”. 《oracle.com》. 2020년 7월 14일. 
  293. “JDK 11.0.8 Bug Fixes”. 《oracle.com》. 2020년 7월 14일. 
  294. “JDK 11.0.9 Release Notes”. 《oracle.com》. 2020년 10월 20일. 
  295. “JDK 11.0.9 Bug Fixes”. 《oracle.com》. 2020년 10월 20일. 
  296. “JDK 11.0.10 Release Notes”. 《oracle.com》. 2021년 1월 19일. 
  297. “JDK 11.0.10 Bug Fixes”. 《oracle.com》. 2021년 1월 19일. 
  298. “JDK 11.0.11 Release Notes”. 《oracle.com》. 2021년 4월 20일. 
  299. “JDK 11.0.11 Bug Fixes”. 《oracle.com》. 2021년 4월 20일. 
  300. “JDK 11.0.12 Release Notes”. 《oracle.com》. 2021년 7월 20일. 
  301. “JDK 11.0.12 Bug Fixes”. 《oracle.com》. 2021년 7월 20일. 
  302. “JDK 11.0.13 Release Notes”. 《oracle.com》. 2021년 10월 19일. 
  303. “JDK 11.0.13 Bug Fixes”. 《oracle.com》. 2021년 10월 19일. 
  304. “JDK 11.0.14 Release Notes”. 《oracle.com》. 2022년 1월 18일. 
  305. “JDK 11.0.14 Bug Fixes”. 《oracle.com》. 2022년 1월 18일. 
  306. “JDK 11.0.15 Release Notes”. 《oracle.com》. 2022년 4월 19일. 
  307. “JDK 11.0.15 Bug Fixes”. 《oracle.com》. 2022년 4월 19일. 
  308. “JDK 11.0.16 Release Notes”. 《oracle.com》. 2022년 7월 19일. 
  309. “JDK 11.0.16 Bug Fixes”. 《oracle.com》. 2022년 7월 19일. 
  310. “JDK 11.0.16.1 Release Notes”. 《oracle.com》. 2022년 8월 18일. 
  311. “JDK 11.0.17 Release Notes”. 《oracle.com》. 2022년 10월 19일. 
  312. “JDK 11.0.17 Bug Fixes”. 《oracle.com》. 2022년 10월 19일. 
  313. “JDK 11.0.18 Release Notes”. 《oracle.com》. 2023년 1월 17일. 
  314. “JDK 11.0.18 Bug Fixes”. 《oracle.com》. 2023년 1월 17일. 
  315. “JDK 11.0.19 Release Notes”. 《oracle.com》. 2023년 4월 18일. 
  316. “JDK 11.0.19 Bug Fixes”. 《oracle.com》. 2023년 4월 18일. 
  317. “JDK 11.0.20 Release Notes”. 《oracle.com》. 2023년 7월 18일. 
  318. “JDK 11.0.20 Bug Fixes”. 《oracle.com》. 2023년 7월 18일. 
  319. “JDK 11.0.21 Release Notes”. 《oracle.com》. 2023년 10월 17일. 
  320. “JDK 11.0.21 Bug Fixes”. 《oracle.com》. 2023년 10월 17일. 
  321. “JDK 11.0.22 Release Notes”. 《oracle.com》. 2024년 1월 16일. 
  322. “JDK 11.0.22 Bug Fixes”. 《oracle.com》. 2024년 1월 16일. 
  323. “JDK 11.0.23 Release Notes”. 《oracle.com》. 2024년 4월 16일. 
  324. “JDK 11.0.24 Release Notes”. 《oracle.com》. 2024년 7월 16일. 
  325. “JDK 11.0.25 Release Notes”. 《oracle.com》. 2024년 10월 15일. 
  326. “JDK 11.0.26 Release Notes”. 《oracle.com》. 2025년 1월 21일. 
  327. “JDK 11.0.27 Release Notes”. 《oracle.com》. 2025년 4월 15일. 
  328. “JDK 11.0.28 Release Notes”. 《oracle.com》. 2025년 7월 15일. 
  329. “JDK 11.0.29 Release Notes”. 《oracle.com》. 2025년 10월 21일. 
  330. OpenJDK. “12”. 
  331. “JDK 12 Release Notes”. oracle.com. 2019년 3월 19일. 
  332. “JDK 12.0.1 Release Notes”. oracle.com. 2019년 4월 16일. 
  333. “JDK 12.0.1 Bug Fixes”. 《oracle.com》. 2019년 4월 16일. 
  334. “JDK 12.0.2 Release Notes”. oracle.com. 2019년 7월 16일. 
  335. “Azul Support Roadmap” (미국 영어). 《Azul | Better Java Performance, Superior Java Support》. 2023년 6월 28일에 확인함. 
  336. oracle.com, mark reinhold at (2019년 9월 17일). “Java 13 / JDK 13: General Availability”. 
  337. “JDK 13 Release Notes”. oracle.com. 2019년 9월 17일. 
  338. “JDK 13.0.1 Release Notes”. oracle.com. 2019년 10월 15일. 
  339. “JDK 13.0.2 Release Notes”. oracle.com. 2020년 1월 14일. 
  340. “JDK 13.0.2 Bug Fixes”. 《oracle.com》. 2020년 1월 14일. 
  341. oracle.com, mark reinhold at (2020년 3월 17일). “Java 14 / JDK 14: General Availability”. 
  342. Evans, Ben (2020년 1월 10일). “Records Come to Java”. 《Java Magazine》 (Oracle). 2021년 7월 10일에 확인함. 
  343. “JDK 14 Release Notes”. oracle.com. 2020년 3월 17일. 
  344. “JDK 14.0.1 Release Notes”. oracle.com. 2020년 4월 14일. 
  345. “JDK 14.0.1 Bug Fixes”. 《oracle.com》. 2020년 4월 14일. 
  346. “JDK 14.0.2 Release Notes”. oracle.com. 2020년 7월 14일. 
  347. “JDK 14.0.2 Bug Fixes”. 《oracle.com》. 2020년 7월 14일. 
  348. Gavin Bierman; Brian Goetz (September 2018). “Pattern Matching for Java”. 《openjdk.org》. 2024년 6월 18일에 확인함. 
  349. “JDK 15 Release Notes”. oracle.com. 2020년 9월 15일. 
  350. “JDK 15.0.1 Release Notes”. oracle.com. 2020년 10월 20일. 
  351. “JDK 15.0.1 Bug Fixes”. 《oracle.com》. 2020년 10월 20일. 
  352. “JDK 15.0.2 Release Notes”. oracle.com. 2021년 1월 19일. 
  353. “JDK 15.0.2 Bug Fixes”. 《oracle.com》. 2021년 1월 19일. 
  354. “[JDK-8255616] Removal of experimental features AOT and Graal JIT – Java Bug System”. 《bugs.openjdk.java.net》. 2021년 2월 19일에 확인함. 
  355. “JDK 16 Release Notes”. oracle.com. 2021년 3월 16일. 
  356. “JDK 16.0.1 Release Notes”. oracle.com. 2021년 4월 20일. 
  357. “JDK 16.0.1 Bug Fixes”. 《oracle.com》. 2021년 4월 20일. 
  358. “JDK 16.0.2 Release Notes”. oracle.com. 2021년 7월 20일. 
  359. “JDK 16.0.2 Bug Fixes”. 《oracle.com》. 2021년 7월 20일. 
  360. “JDK 17”. 《openjdk.java.net》. 2021년 9월 17일에 확인함. 
  361. “JDK 17 Release Notes”. oracle.com. 2021년 9월 14일. 
  362. “JDK 17.0.1 Release Notes”. oracle.com. 2021년 10월 19일. 
  363. “JDK 17.0.1 Bug Fixes”. 《oracle.com》. 2021년 10월 19일. 
  364. “JDK 17.0.2 Release Notes”. oracle.com. 2022년 1월 18일. 
  365. “JDK 17.0.2 Bug Fixes”. 《oracle.com》. 2022년 1월 18일. 
  366. “JDK 17.0.3 Release Notes”. oracle.com. 2022년 4월 19일. 
  367. “JDK 17.0.3 Bug Fixes”. 《oracle.com》. 2022년 4월 19일. 
  368. “JDK 17.0.3.1 Release Notes”. oracle.com. 2022년 5월 2일. 
  369. “JDK 17.0.3.1 Bug Fixes”. 《oracle.com》. 2022년 5월 2일. 
  370. “JDK 17.0.4 Release Notes”. oracle.com. 2022년 7월 19일. 
  371. “JDK 17.0.4 Bug Fixes”. 《oracle.com》. 2022년 7월 19일. 
  372. “JDK 17.0.4.1 Release Notes”. oracle.com. 2022년 8월 18일. 
  373. “JDK 17.0.5 Release Notes”. oracle.com. 2022년 10월 18일. 
  374. “JDK 17.0.5 Bug Fixes”. 《oracle.com》. 2022년 10월 18일. 
  375. “JDK 17.0.6 Release Notes”. oracle.com. 2023년 1월 17일. 
  376. “JDK 17.0.6 Bug Fixes”. 《oracle.com》. 2023년 1월 17일. 
  377. “JDK 17.0.7 Release Notes”. oracle.com. 2023년 4월 18일. 
  378. “JDK 17.0.7 Bug Fixes”. 《oracle.com》. 2023년 4월 18일. 
  379. “JDK 17.0.8 Release Notes”. oracle.com. 2023년 7월 18일. 
  380. “JDK 17.0.8 Bug Fixes”. 《oracle.com》. 2023년 7월 18일. 
  381. “JDK 17.0.9 Release Notes”. oracle.com. 2023년 10월 17일. 
  382. “JDK 17.0.9 Bug Fixes”. 《oracle.com》. 2023년 10월 17일. 
  383. “JDK 17.0.10 Release Notes”. 《oracle.com》. 2024년 1월 16일. 
  384. “JDK 17.0.10 Bug Fixes”. 《oracle.com》. 2024년 1월 16일. 
  385. “JDK 17.0.11 Release Notes”. oracle.com. 2024년 4월 16일. 
  386. “JDK 17.0.12 Release Notes”. oracle.com. 2024년 7월 16일. 
  387. “JDK 17.0.13 Release Notes”. oracle.com. 2024년 10월 15일. 
  388. “JDK 17.0.14 Release Notes”. oracle.com. 2025년 1월 21일. 
  389. “JDK 17.0.15 Release Notes”. oracle.com. 2025년 4월 15일. 
  390. “JDK 17.0.16 Release Notes”. oracle.com. 2025년 7월 15일. 
  391. “JDK 17.0.17 Release Notes”. oracle.com. 2025년 10월 21일. 
  392. “JDK 18”. 《openjdk.org》. 2023년 6월 28일에 확인함. 
  393. “JDK 18 Release Notes”. oracle.com. 2022년 3월 22일. 
  394. “JDK 18.0.1 Release Notes”. oracle.com. 2022년 4월 19일. 
  395. “JDK 18.0.1 Bug Fixes”. 《oracle.com》. 2022년 4월 19일. 
  396. “JDK 18.0.1.1 Release Notes”. oracle.com. 2022년 5월 2일. 
  397. “JDK 18.0.1.1 Bug Fixes”. 《oracle.com》. 2022년 5월 2일. 
  398. “JDK 18.0.2 Release Notes”. oracle.com. 2022년 7월 19일. 
  399. “JDK 18.0.2 Bug Fixes”. 《oracle.com》. 2022년 7월 19일. 
  400. “JDK 18.0.2.1 Release Notes”. oracle.com. 2022년 8월 18일. 
  401. “JDK 19”. 《openjdk.org》. 2022년 9월 19일에 확인함. 
  402. “JDK 19 Release Notes”. oracle.com. 2022년 9월 20일. 
  403. “JDK 19.0.1 Release Notes”. oracle.com. 2022년 10월 18일. 
  404. “JDK 19.0.1 Bug Fixes”. 《oracle.com》. 2022년 10월 18일. 
  405. “JDK 19.0.2 Release Notes”. oracle.com. 2023년 1월 17일. 
  406. “JDK 19.0.2 Bug Fixes”. 《oracle.com》. 2023년 1월 17일. 
  407. “JDK 20”. 《openjdk.org》. 2023년 4월 21일에 확인함. 
  408. “JDK 20 Release Notes”. oracle.com. 2023년 3월 21일. 
  409. “JDK 20.0.1 Release Notes”. oracle.com. 2023년 4월 18일. 
  410. “JDK 20.0.1 Bug Fixes”. 《oracle.com》. 2023년 4월 18일. 
  411. “JDK 20.0.2 Release Notes”. oracle.com. 2023년 7월 18일. 
  412. “JDK 20.0.2 Bug Fixes”. 《oracle.com》. 2023년 7월 18일. 
  413. “JDK 21”. 《OpenJDK》. 2023년 6월 12일에 확인함. 
  414. “JDK 21 Release Notes”. oracle.com. 2023년 9월 19일. 
  415. “JDK 21.0.1 Release Notes”. oracle.com. 2023년 10월 17일. 
  416. “JDK 21.0.1 Bug Fixes”. 《oracle.com》. 2023년 10월 17일. 
  417. “JDK 21.0.2 Release Notes”. 《oracle.com》. 2024년 1월 16일. 
  418. “JDK 21.0.2 Bug Fixes”. 《oracle.com》. 2024년 1월 16일. 
  419. “JDK 21.0.3 Release Notes”. 《oracle.com》. 2024년 4월 16일. 
  420. “JDK 21.0.3 Bug Fixes”. 《oracle.com》. 2024년 4월 16일. 
  421. “JDK 21.0.4 Release Notes”. 《oracle.com》. 2024년 7월 16일. 
  422. “JDK 21.0.5 Release Notes”. 《oracle.com》. 2024년 10월 15일. 
  423. “JDK 21.0.6 Release Notes”. 《oracle.com》. 2025년 1월 21일. 
  424. “JDK 21.0.7 Release Notes”. 《oracle.com》. 2025년 4월 15일. 
  425. “JDK 21.0.8 Release Notes”. 《oracle.com》. 2025년 7월 25일. 
  426. “JDK 21.0.9 Release Notes”. 《oracle.com》. 2025년 10월 21일. 
  427. “JDK 22”. 《OpenJDK》. 2024년 4월 10일에 확인함. 
  428. “Oracle Releases Java 22”. 《oracle.com》. 2024년 3월 20일에 확인함. 
  429. “Java SE 22 (JSR 397)”. 《cr.openjdk.org》. 2024년 4월 16일에 확인함. 
  430. “Java SE 23 Platform JSR 398”. 《openjdk.org》. 2024년 1월 17일에 확인함. 
  431. “JDK 23”. 《openjdk.org》. 2024년 8월 28일에 확인함. 
  432. “Oracle Releases Java 23”. 《oracle.com》. 2024년 9월 17일에 확인함. 
  433. Bierman, Gavin (2024년 4월 5일). “Update on String Templates (JEP 459)” (메일링 리스트). 《Amber Expert Group》. 2024년 9월 25일에 확인함. 
  434. “Java SE 24 Platform JSR 399”. 《openjdk.org》. 2024년 9월 25일에 확인함. 
  435. “JDK 24”. 《OpenJDK》. 오라클 (기업). 2024년 11월 9일에 확인함. 
  436. “Java SE 25 Platform JSR 400”. 《openjdk.org》. 2024년 12월 15일에 확인함. 
  437. “JDK 25”. 《openjdk.org》. 2025년 7월 21일에 확인함. 
  438. “Downloads – Overview”. 2016년 7월 18일. 
  439. “Amazon Corretto”. 《Amazon Web Services》. 2025년 11월 16일에 확인함. 
  440. “Eclipse Temurin”. 《Adoptium》. 이클립스 재단. 2025년 11월 16일에 확인함. 
  441. “Liberica JDK”. 《BellSoft》. 2025년 11월 16일에 확인함. 
  442. “SapMachine”. 《SAP》. 2025년 11월 16일에 확인함. 
  443. “Alibaba Dragonwell8”. 《깃허브》. Alibaba. 2025년 11월 16일에 확인함. 
  444. “GraalVM”. 《GraalVM》. Oracle Labs. 2025년 11월 16일에 확인함. 
  445. “Red Hat build of OpenJDK”. 《Red Hat Developer》. 레드햇. 2025년 11월 16일에 확인함. 
  446. “IBM Semeru Runtimes”. 《IBM Developer》. IBM. 2025년 11월 16일에 확인함. 

외부 링크

[편집]