Program/Java

JDK(Java Development Kit) , JRE(Java Runtime Environment), JVM(Java Virtual Machine) 란?

soccerda 2020. 4. 28. 14:35
반응형

자바 개발 키트 JDK

자바 기반 소프트웨어를 개발하기 위한 도구(tool) 패키지

자바 런타임 환경 JRE

자바 코드를 실행하기 위한 도구 패키지

자바 가상 머신 JVM

스프트웨어이지만 Machine이라는 말이 들어간 이유는 JVM이 실제로는 CPU와 같은 역할을 하기 때문이다. 클래스 파일(.class)은 직접 CPU에서 동작할 수 있는 코드(native code)가 아니다. 생성된 클래스 파일은 중간단계의 언어라고 할 수 있는 byte code인데 이 코드를 실행하기 위해서는 가상적인 CPU가 필요하다. 바로 그것이 JVM이다. JAVA언어가 native code가 아닌 byte code를 생성하는 이유는 이식성 때문이다. 직접 native code를 생성하면 그 CPU에 종속적인 특성을 갖는다. 즉 컴파일된 CPU에서만 돌아간다. 반면에 byte code는 JVM위에서 돌아가기 때문에 어떤 플랫폼이건 JVM만 있으면 실행이 가능하다.

결국 서로다른 플랫폼(리눅스/맥/윈도우)에서 자바 프로그램이 실행되는 동일한 환경제공

 

 

기타 정리

자바컴퍼일러 :  소스파일(.java)을 컴파일하여 클래스 파일(.class) 생성

컴파일러: 컴파일을 전담하는 소프트웨어

컴파일: 컴퓨터가 실행할수 있는 기계어 코드(byte code)로 변환하는 과정

 

 

결론

자바프로그램은 JVM환경 위에서 실행되며 개발자는 JDK를 사용하여 개발하고 자바 프로그램 실행은 JRE에서 수행한다.

결국 개발자는 JDK+JRE+JVM 설치가 필요하고 일반 사용자는 JRE+JVM 설치가 필요하다.

 

추가

SDK Software Development Kit 개발 도구 키트이며 java를 개발하기 위핸 SDK를 JDK로 불린다. SDK를 더 큰 범위로 볼 수 있다.

 

JAR(자바 아카이브) 소프트웨어 패키지가 들어있는 일종의 라이브러리

반응형

'Program > Java' 카테고리의 다른 글

무료 소스 취약점 방법 (Yasca , PMD, SpotBugs)  (0) 2023.11.08
JDK 설치  (0) 2020.09.10
DB Connection Pool  (0) 2019.08.08
connection pool leak (커넥션풀 누수)  (0) 2019.08.08
JDBC(Java Database Connectivity)  (0) 2019.08.08