![](https://blog.kakaocdn.net/dn/RTgwA/btsFF75QkAJ/KxjoL0OkGtzQpYYrnJ6RWK/img.jpg)
자바 가상 기계(JVM: Java Virtual Machine)
운영체제는 자바 프로그램을 바로 실행할 수 없는데, 그 이유는 자바 프로그램은 완전한 기계어가 아닌, 중간 단계의 바이트 코드이기
때문에 이것을 해석하고 실행할 수 있는 가상의 운영체제가 필요하다 이것이 자바 가상 기계(JVM: Java Virtual Machine)이다.
JVM은 실 운영체제를 대신 해서 자바 프로그램을 실행하는 가상의 운영체제 역할을 한다.
운영체제별로 프로그램을 실행하고 관리하는 방법이 다르기 때문에 운영체제별로 자바 프로그램을 별도로 개발하는 것보다는
운영체제와 자바 프로그램을 중계하는 JVM을 두어 자바 프로그램이 여러 운영체제에서 동일한 실행 결과가 나오도록 설계한 것이다. 따라서 개발자는 운영체제와 상관없이 자바 프로그램을 개발할 수 있다.
JVM은 이식성이 높은 자바를 다른 OS간에 넘나들며 해석하고 실행할 수 있도록 도와주는 기계(컴퓨터)이다.
다음은 JVM이 실행되는 과정을 보여주는 사진이다.
![](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
자바프로그램을 개발하기 위해서는 먼저 Java SE(Standard Edition)의 구현체인 JDK를 설치해야 한다.
Java SE의 구현체는 자바 개발 키트(JDK: Java Development Kit)와 자바 실행 환경(JRE: Java Runtime Environment) 이라는
두 가지 버전이 있다.
자바 개발 도구(JDK: Java Development Kit)
JDK(JDK: Java Development Kit) 는 프로그램 개발에 필요한 자바 가상 기계(JVM), 라이브러리 API, 컴파일러 등의 개발 도구가 포함되어 있디.
자바 프로그램을 개발하고자 하는 것이 아니고, 이미 개발된 프로그램만 실행한다면 JRE만 설치하면 된다.
- JDK = JRE + 개발에 필요한 도구
자바 실행 환경(JRE: Java Runtime Environment)
JRE에는 프로그램 실행에 필요한 자바 가상 기계(JVM), 라이브러리 API만 포함되어 있다.
- JRE = JVM + 표준 클래스 라이브러리
정리하자면
JVM은 자바에서 컴파일 과정을 거쳐 만들어진 자바 바이러니 파일(.class)을 실행할 수있도록 한다.
JRE는 JVM에서 자바 프로그램을 실행시킬 때 필요한 라이브러리 등 파일등을 가지고 있는데, 자바를 실행시키기 위한 환경만 구축한 것이다.
JDK는 JRE + 개발을 위한 도구들을 포함하고 있다.
다음은 사진은 포함관계 이미지 이다.
![](https://blog.kakaocdn.net/dn/csTlPG/btsFGULKUJ4/IhNRz74wMbGiKKlqptwynK/img.png)
포함관계 이미지 출처 | https://m.blog.naver.com/goreng2/221770110714
참고도서
- 이것이 자바다(신용권 지음)
'JAVA > self-study' 카테고리의 다른 글
[JAVA] Map 연습문제 (0) | 2024.05.23 |
---|---|
[JAVA] 배열의 얕은복사와 깊은복사 (0) | 2024.03.18 |
[IntelliJ] 매크로 설정 (0) | 2024.03.15 |
[JAVA] JAVA란? (0) | 2024.03.10 |
[IntelliJ] JAVA 콘솔창에서 한글이 깨지는 경우 (0) | 2024.03.10 |