Java SE/JDK/JRE/JVM은 무엇인가

kuku·2023년 1월 8일
0

Java

목록 보기
1/7

📖Java SE

Java SE(Java Platform, Standard Edition)는 자바의 표준안이다. 자바라는 언어가 어떠한 문법적인 구성을 가졌는지와 같은 것들을 정의하고 있다. 즉, 구체적인 소프트웨어가 아니라 그 소프트웨어의 설계도라고 할 수 있다. 소프트웨어에서는 설계도라는 표현 대신 명세서(spec, specification)이라는 표현을 사용한다. 이 명세서에 따라 자바가 만들어지게 된다.


📖JDK

JDK(Java Development Kit)는 Java SE의 표준안에 따라 만들어진 구체적인 소프트웨어이다. 자바 코드를 컴파일하는 컴파일러와 개발에 필요한 각종 도구, JRE가 포함되어 있다. 즉, 자바를 이용해 개발을 하기 위해서는 JDK가 필요하다.

JDK의 bin 디렉토리에는 자바로 프로그램을 개발하기 위해 필요한 실행파일들이 들어있는데, 주요 실행파일들은 다음과 같다.

📁JDK의 bin 디렉토리 주요 실행파일

  • javac.exe : 자바 컴파일러. 자바소스코드를 바이트코드로 컴파일한다.
  • java.exe : 자바 인터프리터. 컴파일러가 생성한 바이트코드를 해석하고 실행한다.
  • javap.exe : 역어셈블러. 컴파일된 클래스파일을 원래의 소스로 변환한다.
  • javadoc.exe : 자동문서생성기. 소스파일에 있는 주석(/** */)을 이용하여 Java API와 같은 형식의 문서를 자동으로 생성한다.
  • jar.exe : 압축프로그램. 클래스파일과 프로그램의 실행에 관련된 파일을 하나의 jar파일(.jar)로 압축하거나 압축해제한다.

참고) 바이트코드 : JVM이 이해할 수 있는 기계어. JVM은 바이트코드를 OS의 기계어로 변환하여 OS로 전달한다.


📖JRE

JRE(Java Runtime Environment)는 자바가 실제로 동작하는데에 필요한 JVM, 라이브러리, 각종 파일들이 포함되어 있다. 자바로 작성된 응용프로그램이 실행되기 위한 최소환경으로, 개발이 아닌 응용프로그램의 실행만을 위해서는 JRE가 필요하다.


📖JVM

JVM(Java Virtual Machine)은 자바를 실행하기 위한 가상 기계이다. 자바로 만들어진 소프트웨어는 모두 JVM이라는 가상화된 환경에서 실행되고, 하드웨어나 운영체제에 따라 달라질 수 있는 호환성의 문제는 운영체제 버전에 따라 만들어진 JVM이 운영체제가 이해할 수 있도록 변환하여 해결한다. 즉, 하나의 자바 프로그램을 만들면 운영체제와 하드웨어에 관계없이 실행 가능하다.(Write once, run everywhere)


그림으로 나타내면 다음과 같다.

이미지 출처 : https://opentutorials.org/module/516/5245
  • JDK : 자바개발도구(Java Development Kit)
    => JRE + 개발에 필요한 실행파일(javac.exe 등)
  • JRE : 자바실행환경(Java Runtime Environment)
    => JVM + 클래스라이브러리(Java API)
참고 : https://opentutorials.org/module/516/5245, 자바의 정석 3판

0개의 댓글