자바를 처음 공부했을 때 들었던 생각이 있었다.
자바 버전이 17, 21 이런 식으로 있는데 JDK는 그럼 뭐지?
자바를 사용하려면 꼭 알아야 되는 건가? 그럼 JRE는 뭐지?
자바 언어를 사용하면서 JDK나 JRE를 정확하게 알고 있을까란 의문이 들었고 그래도 내가 자바 개발자라면 꼭 알아야 되는 개념이라고 생각해서 정리를 해봤다.
JDK(Java Development Kit)
JDK는 자바 애플리케이션을 개발하는 데 사용되는 소프트웨어 개발 환경으로 JDK 또한 하나의 소프트웨어이다.
자바 개발자는 JDK를 통해서 자바 프로그램을 코딩하고 실행할 수 있기 때문에 javac, javadoc 등의 개발 도구들(development tools)이 포함되어 있다.
그림과 같이 JDK는 JRE와 JVM을 포함하고 있고, 그 외에 자바를 개발하는데 필요한 개발 도구도 포함되어 있다.
JDK는 나중에 배울 JVM과는 달리 여러 가지 운영체제에 맞는 별도의 JDK 프로그램이 있다.
자바를 사용할 때 확인할 수 있는 버전이 곧 JDK의 버전이라고 생각하면 된다.
JRE(Java Runtime Environment)
JRE는 자바 실행환경의 약자로 JVM이 자바 프로그램을 실행시킬 때 필요한 라이브러리 API를 함께 묶어서 배포되는 패키지이다. 그 외에도 프로퍼티 세팅이나 리소스 파일(jar 파일)을 가지고 있다.
JRE는 JDK와 마찬가지로 운영체제에 따라 다르다.
프로그램만 실행하려면 JDK가 아닌 JRE만 설치해도 된다. 왜냐하면 프로그램만 실행한다고 생각하면 코드를 작성하거나 컴파일할 필요가 없기 때문이다. (사진을 보면 development tools가 없다는 것을 확인할 수 있음)
정리해 보면 자바 프로그램을 개발하려면 JDK가 필요하고, 컴파일된 자바 프로그램을 실행시키려면 JRE가 필요하다.
JVM(Java Virtual Machine)
JVM은 자바 가상 머신으로 자바 프로그램을 실행시켜주는 프로그램을 뜻한다.
자바로 작성된 모든 프로그램은 JVM에서만 실행될 수 있으므로 자바 프로그램을 실행하기 위해서는 반드시 JVM이 있어야 한다.
위에서 설명한 JRE에는 JVM을 포함하고 있기 때문에 JRE가 설치되어 있다면 JVM도 설치되어 있다고 보면 된다.
앞서 설명한 JDK와 JRE보다 더 중요한 것은 JVM이다.
참고 자료
'자바' 카테고리의 다른 글
[Java] - 스레드 (1) | 2023.11.29 |
---|---|
[Java] - 입출력 스트림 (0) | 2023.11.29 |
[Java] - Optional (0) | 2023.11.19 |
[Java] - 람다 (0) | 2023.11.17 |
[Java] - 제네릭 (0) | 2023.11.15 |