JDK, JRE, JVM

자바/JAVA 2015. 10. 16. 10:38

사실 별것도 아니지만 자바 개발을 위한 첫 단계로써 알아두어야 할 사항중에 하나가
JDK 와 JRE 의 차이점, 그리고 JVM 이란 무엇인지를 알아야 할 듯 해서 간단하게 용어를
정리해보려고 합니다.

JDK ( Java Development Kit )
 Java 용 SDK ( Software Development Kit ) 라고 생각하면 쉽겠다.
 -> 실제로 두가지 용어를 혼용해서 쓰므로 헷깔리기 쉽지만 다 같은 의미정도로 생각하자.
 Java 개발자가 Java 기반 프로그램을 개발할 수 있도록 컴파일러, 툴 등을 제공한다.
 개발자 용이기 때문에 사용자는 굳이 설치할 필요가 없다.
 -> 다만 자바로 개발된 Application을 사용하기 위한 실행 환경은 있어야 한다. 그 역할을 JRE 가 한다.
 JDK 는 다시 J2EE ( Enterprise Edition ) , J2SE ( Standard Edition ) , J2ME ( Micro Edition ) 등으로 분류한다.
 -> EE는 기업용 대규모 개발 환경에서 적합한 버전이고
 -> SE는 일반적인 개발 환경
 -> ME는 PDA나 Embeded 환경에서의 개발환경을 제공합니다.

JRE ( Java Runtime Environment )
 Java 프로그램을 실행시키기 위한 환경을 제공한다.
 즉, Java 언어로 만들어져서 컴파일된 프로그램을 실행하려면 JRE 는 설치되어 있어야 한다.

JVM ( Java Virtual Machine )
 Java 소스 코드로부터 만들어지는 Java byte code(자바파일이 컴파일된 코드) 를 실행할 수 있다.
 "write once, run anywhere" 라는 Java 의 trade mark ( '슬로건' 이라는 단어정도로 해석하시면 쉬울듯)
 는 JVM 이 많은 SW/HW 플랫폼에서 동작 할 수 있기때문에 가능한 이야기 이다.
 -> 개발을 했으면, 어디서든 사용이 가능해야지 !! 라는 슬로건 아래에서 만들어진 개념이 JVM 입니다.
 -> 다시 말해 윈도우에서 개발하고 리눅스에서도 실행이 가능하다는 말입니다.
 -> 또한 윈도우에서 개발해도 다른 임베디드 시스템에서도 사용이 가능하게 된다는 뜻입니다.

* JDK 는 개발자 툴이므로 당연히 실행할수 있는 환경이 제공되어진다. 따라서 
JDK = JRE + 개발툴 + Java 컴파일러
JRE = JVM, 라이브러리, 기타 애플릿이나 어플리케이션 구동 요소 
로 생각하면 쉬울듯 하다.
* JRE 는 개발자용이 아니다 -> 따라서 Debuger 등의 유틸리티 역시 없다.

 <기타> Java 를 별로 사용안하면 생각보다 해깔리는 경우가 많아서 ... 간단히 용어 정리 합니다.

JNI ( Java Native Interface ) 
 JVM 에서 동작하는 Java code 가 다른언어(assem, c, c++) 에 의해 호출되고, 
 다른 언어를 호출 할 수 있도록 만들어진 interface 이다.
 -> 위키백과를 참조하시면 더 좋을듯 합니다. ( http://en.wikipedia.org/wiki/JNI )

JSP ( Java Server Page )
 HTML 내에 자바 코드를 삽입하여서 웹 서버 내에서 동적으로 웹 페이지를 생성하여 웹 브라우져에
돌려주는 언어입니다.


[출처]http://egloos.zum.com/folt/v/2353901

블로그 이미지

532

처음 프로그래밍을 시작한 개발자들은 Hello World!를 기억 할 것이다. Hello world가 Hell World가 될 줄 몰랐던 한 개발자의 이야기. 게시글의 출처를 표기하며, 출처를 남기지 않고 펌을 하는것에 대해 법적 책임을 묻지 않습니다.

,