http://www.oracle.com/technetwork/java/index.html



1. Java SE Development Kit(JDK) 7u9 Downloads

http://www.oracle.com/technetwork/java/javase/downloads/index.html


2. Install JDK & JRE

The JDK includes the JRE, so you do not have to download both separately.

(EE버전 설치 시 java runtime environment 문제가 발생하면 JRE부터 설치하면 된다. 만약 Windows 8에서 Error: Could not find the required version of the Java(TM) 2 Runtime Environment in'(null)' 라는 에러가 발생했다면 JRE를 32bit(x86)로 설치하면 해결할 수 있다.)


3. User Environmental Variables Setting(시스템 변수 > 새로 만들기)

  • JDK: JAVA_HOME / C:\Program Files\Java\jdk1.7.0_09
  • JRE: JRE_HOMEC:\Program Files\Java\jdk1.7.0_09\jre


4. System Variables Setting(시스템 변수 > Path 선택 > 변수값 추가)

  • Path 변수에 변수값 추가: ;%JAVA_HOME%\bin;
  • CLASSPATH 변수에 변수값 추가: .;%JAVA_HOME%\lib;


5. Confirming Installation

Windows Cmd > "java -version"



J2SE, J2EE, and J2ME

Java SE (Java Standard Edition)

자바 프로그램 개발에 기본적으로 필요한 API를 제공한다. SE에는 JDBC, Javadoc 도구, RMI, JNDI 등을 포함하고있다.


Java EE (Java Enterprise Edition)

기업용 분산 API를 개발할때 사용하는 기술로 서버측의 서블릿(Servlets), JTA, JMS, XML 등을 다룰 수 있는 API를 제공한다.


Java ME (Java Micro Edition)

소형 가전제품용 API개발 기술로 네트워크에서 다뤄지는 가전제품 개발을 위한 Personal Java, 소형 장비를 위해 제공되는 Embedded Java로 구분된다. 또한, PDA나 스마트폰의 앱도 제공되는 API를 사용하여 개발할수 있다.


JDK, JRE, and JVM


JVM (Java Virtual Machine)

자바의 플랫폼 독립적 특성의 중추적 역할을 담당하고 있는 JVM은 가장 좁은 범위에 속해있다. JVM의 중추적 역할은 인터프리터로써 컴파일된 바이트코드(Java byte code)를 실행하는 것이다. 이 때의 바이트코드는 어느 플랫폼에서도 사용 가능하도록 정의되어 있다. JVM은 메모리 영역을 담당하며 Garbage Collection 기능도 수행한다. 결국, JVM은 플랫폼에 맞게 실행해주는 수행의 중추라고 정의할 수 있겠다.


JRE (Java Runtime Environment)

Java 프로그램을 실행시키기 위한 환경을 제공하는 JRE는 말 그대로 JVM이 실행하는 것을 도와주는 조력자 역할을 한다. 즉, Java 언어로 만들어져서 컴파일된 프로그램을 실행하려면 JRE는 필수적이다.

JVM이 바이트코드의 내용을 인식하고 실행하기 위해서는 바이트코스 속에서 사용된 기본 클래스나 메서드를 인식할 수 있어야 한다. 이러한 실행 환경을 구축해 주는 것이 JRE라고 할 수 있겠다.

요약하자면, JVM이 실행을 담당하는 배우라면 JRE는 JVM의 실행할 수 있는 환경을 꾸려주는 연출가라고 할 수 있겠다.(정확히 말하자면, 배우를 돕는 연출가와 촬영 스태프들 모두를 말할 수 있겠다.)


JDK (Java Development Kit)

JDK는 개발자를 위한 환경으로, Java 개발자가 Java 기반 프로그램을 개발할 수 있도록 컴파일러, 툴 등을 제공한다.

JRE를 통해 실행환경을 구축하고, JVM을 통해 실행을 할 수 있었다면, JDK를 통해서 개발을 할 수 있다.

JDK는 개발을 위해 필요한 온갖 API가 정의되어 있어 개발자들이 이용할 수 있으며, 작성한 소스코드를 컴파일하여 바이트코드를 생성하는 단계까지 제공한다.


정리

3가지 과정을 개발 과정의 측면으로 보면,

코드작성(개발자) > 컴파일(JDK) > 바이트코드 > 인터프리터(JVM) > 실행

위와 같이 되어 JDK에서는 실행가능한 바이트코드(.class)를 생성하고, JRE라는 환경을 이용하여 JVM이 바이트코드를 실행하는 역할을 담당한다.

설치를 하는 측면에서 보자면, 자바로 작성된 소스(.class)를 실행하기 위해서 JRE단계까지만 필요할 것이고, 개발까지 원한다면 JDK를 이용하면 된다.