의문점 공부하기/📌 Java

📌 JDK와 JRE의 차이점은 뭘까?

아리빠 2023. 5. 30. 10:03

JDK (Java Development Kit)

- 자바 개발자를 위한 상업용 소프트웨어로 자바 컴파일러 등의 개발 도구와 JRE(Java Runtime Environment) 로 구성된다

 


 

JRE(Java Runtime Environment) 

- 자바 응용프로그램이 실행될 때 필요한 소프트웨어들로, 개발자가 활용 할 수 있는 java API (API: 이미 컴파일된 다양한 클래스 라이브러리) 와 JVM(Java Virtual Machine: 자바 가상 기계)을 포함한다.

 


 

개발자가 아닌 일반 사용자의 경우 JRE만 필요하며, JRE만 따로 다운받을 수 있다.

 


++ Java는 플랫폼에 독립적으로 설계되었다 

--한 번  작성되고 컴파일된 java code는 운영체제나 CPU 등 플랫폼에 상관없이 자바 가상 기계(JVM) 만 있으면 어느 컴퓨터에서든 동일하게 실행된다 => 이를 WORA (Write Once Run Anywhere)라고 한다

 


 

+++ 플랫폼 독립성을 실현 가능하게 해준것이 JVM과 Bytecode 

--- Bytecode는 자바 컴파일러가 자바 소스 프로그램을 컴파일한 일종의 기계어로, JVM에 의해 실행되는 binary code다. CPU에 의해 직접 실행되는 것이 아닌, JVM에 의해 인터프리터 방식으로 한 명령씩 해석되어 실행된다.

 


 

자바 프로그램 입장에서 JVM은 운영체제이자 컴퓨터

-> JVM은 플랫폼에 적합하게, 서로 다르게 구현되므로 플랫폼에 종속적이다. BUT 모두 동일한 자바 프로그램에게 동일한 인터페이스와 실행 환경을 제공