Memories in SeoK

기억하고 싶은 것들, 기억해야 하는 것들

개발/자바 Java

[Java 입문] JRE? JDK? 기초 용어 정리와 다운로드

Seo K 2024. 5. 11. 17:35

용어 정리

  • JVM (Java Virtual Machine): Java 프로그램을 실행할 때 사용되는 가상 머신
    OS에 무관하게 같은 동작을 보장하는 JAVA의 특징은 JVM이 있기에 가능한 것이다. class 파일에 있는 바이트코드를 OS의 기계어로 번역하는 역할을 한다.
  • JRE (Java Runtime Environment): Java 프로그램을 "실행"하는 데 필요한 도구 또는 환경 요소의 모음
    JVM, Java Classloader (class 파일을 불러와 바이트코드를 JVM에 전달하는 역할), JDBC, JNDI 등을 포함한다.
  • JDK (Java Development Kit): Java 프로그램을 "작성, 개발"하는 데 필요한 도구들의 모음
    JRE와 함께 Compiler, Debugger 등을 포함한다.

다양한 JDK들

Open JDK를 기반으로 (배포판이 아닌 소스만 제공) Oracle, IBM, Red Hat 등 여러 회사에서 JDK를 구현하여 배포하고 있다. (cf. https://whichjdk.com/ko/)

  • Oracle Open JDK: Ealry Access 버전에 대해서 매우 짧은 기간 (6개월) 동안만 지원이 이뤄지는 것으로 보인다
  • Oracle SE JDK: 8u202까지는 무료로, 그 이후부터는 (8u211) 개인 사용 목적 외에는 유료를 적용하는 라이선스 정책을 갖고 있다
    (2021년부터 Oracle JDK 17 이후는 다른 라이선스를 적용하여 무료로 사용할 수 있다는데 아직 확실하게 알아보진 않았음)
  • Adoptium Temurin JDK: Eclipse 재단에서 제공하는 JDK. JRE만 별도로 다운로드할 수 있게 제공하고 있다.
  • Azul Zulu JDK
  • Bellsoft Liberica JDK

Java 에디션

  • Java SE (Java Standard Edition): 표준 에디션
  • Java EE (Java Enterprise Edition) / Jakarta EE: JSP, 서블릿 등 기업용 WAS (Web Application Server) 개발 관련 기술에 특화된 에디션
    Oracle의 소유일 때까지는 "Java Enterprise Edition"이었지만, 2018년 Eclipse 재단으로 프로젝트를 이관하면서 Jakarta로 이름이 바뀌었다. 2020년부터는 프로젝트명뿐만 아니라 Namespace도 바뀌면서 최신 버전의 기능을 사용하려면 패키지명을 javax.*에서 jakarta.*로 바꿔줘야 하는데, 기존 기능을 대체한 것이 아니기 때문에 둘 다 사용해야 할 수도 있다.
    cf1. Java EE에서 Jakarta EE로의 전환 | 인사이트리포트 | 삼성SDS
    cf2. (영문) Java EE vs J2EE vs Jakarta EE | Baeldung
  • Java ME (Java Micro Edition): Embadded 시스템 환경에 특화된 "경량" 에디션

JDK (또는 JRE) 설치에 대해서는 다음 글 참고

 

[Java 입문] JDK 설치 및 환경 변수 확인

Java 설치가 되지 않은 상태임을 확인합니다 배포 JDK 다운로드 Eclipse 재단의 Temurin JDK를 설치했습니다설치형이 편해서 msi 파일로 다운로드했습니다 특별한 이유가 없다면 최신 버전 중 LTS

mem-in-seok.tistory.com