JRE(Java Runtime Environment) 는 Java 프로그램을 실행시키는 데 필요한 라이브러리와 다양한 운영체제에서 Java 프로그램을 실행할 수 있게 해주는 JVM(Java Virtual Machine) 을 제공한다.
JRE 의 특징은 오로지 Java 프로그램을 실행시키는 목적으로 존재한다는 것이다.
JDK(Java Development Kit) 는 Java 프로그램의 실행뿐만 아니라 소스 코드의 작성과 컴파일, 테스트, 패키징과 같은 빌드 과정까지 수행할 수 있도록 도와주는 SDK(Software Development Kit) 이다.
JDK 는 위의 Java 플랫폼 다이어그램을 나타낸 그림에서 알 수 있듯이 JRE 를 포함하고 있는 상위 집합으로서, JRE 에 있는 모든 라이브러리, JVM과 더불어 개발에 필요한 다양한 도구들도 포함하고 있다.
개발 도구들로는 Java의 컴파일러인 javac, Java 프로그램을 실행하는 런처 java, 그리고 Java의 디버거 jdb 등이 존재한다.
정리해보면, JRE 와 JDK 를 다음과 같이 비교해볼 수 있다.
JRE 는 Java 프로그램을 실행하는 데만 필요한 모든 요소를 포함하고 있기 때문에,JDK는 JRE의 모든 기능을 포함하며, 이와 더불어 애플리케이션을 작성, 컴파일, 디버그하고 문서화할 수 있는 도구를 제공한다.프로젝트 진행을 위해 인텔리제이 환경 설정을 하는 과정에서 SDK를 JRE로 설정해버리는 실수를 저질렀다.
JRE, JDK의 차이를 인지하지 못하고 애를 먹느라 많은 시간 소요가 발생했었다.
하지만 이 경험 덕분에 Java 플랫폼에 대한 이해의 필요성을 느끼게 되었다.