자바 – JRE JDK 차이 및 특징
자바를 처음 접하게 되면 JRE와 JDK라는 용어를 들을 수 있습니다. 그렇다면 JRE와 JDK의 차이점은 무엇일까요? 자바 프로그래밍을 시작하기 전에 이 둘을 이해하는 것이 중요합니다.
노랗목차
처음 자바를 설치하려고 할 때, JRE와 JDK의 존재를 알게 됩니다. 이 둘은 자바 개발과 실행을 위해 필요한 도구입니다. JRE와 JDK는 서로 다른 역할을 수행하며, 각각의 특징과 기능을 알아보겠습니다.
JRE란?
JRE(Java Runtime Environment)는 말 그대로 자바 실행 환경입니다.
JRE는 JVM(Java Virtual Machine)을 포함하여 자바 바이너리 파일과 자바 클래스 라이브러리 등을 포함하고 있어 자바 프로그램의 실행을 지원합니다. 하지만 JRE는 컴파일러나 디버거(Debugger) 등의 도구는 포함하지 않습니다.
따라서 자바 프로그램을 개발하는 것이 아니라 실행하기만 원한다면 JRE를 설치하면 됩니다.
[JDK란?]
JDK(Java Development Kit)는 말 그대로 자바 개발 키트입니다.
JDK는 JRE를 포함하여 자바 애플리케이션을 개발하기 위한 환경을 제공합니다. JDK는 컴파일러(javac), javadoc, jar 등 개발에 유용한 도구들을 포함하고 있습니다.
따라서 자바 프로그램을 개발하기 위해서는 JDK를 다운로드해야 합니다.
JRE와 JDK의 결론
JRE | JDK | |
---|---|---|
정의 | 자바 실행 환경 | 자바 개발 키트 |
역할 | 자바 프로그램 실행을 지원 | 자바 애플리케이션 개발을 지원 |
구성요소 | JVM, 자바 바이너리 파일, 클래스 라이브러리 등 | JRE, javac 컴파일러, javadoc, 개발 도구 등 |
컴파일러 | 포함하지 않음 | 포함 (javac) |
디버거 | 포함하지 않음 | 포함 |
개발 도구 | 포함하지 않음 | 포함 (javac, javadoc, jar 등) |
실행환경 | 실행에 필요한 라이브러리와 JVM | 개발 도구와 실행에 필요한 라이브러리, JVM 등 |
사용 | 자바 프로그램 실행을 위해 설치 | 자바 애플리케이션 개발 및 실행을 위해 설치 |
JRE는 자바 실행 환경이고, JDK는 자바 개발 도구입니다. 따라서 개발자들은 JDK를 다운로드하여 자바 프로그램을 개발할 수 있습니다.
Java 8, 11, 17
Java에는 다양한 버전이 존재합니다. 그중 가장 많이 사용되는 버전은 Java 8, 11, 17입니다.
이 세 가지 버전이 많이 사용되는 이유는 이 버전들이 LTS(Long Term Support) 버전이기 때문입니다.
LTS란 말 그대로 장기간에 걸쳐 지원을 해주는 것을 의미합니다. LTS 지원 버전은 출시 이후 8년간 보안 업데이트와 버그 수정을 지원합니다.
그 외에 6개월 간격으로 non-LTS 버전들이 출시되는데, 이러한 버전들은 짧은 기간만 해당 버전을 지원합니다.
따라서, LTS 버전인 Java 8, 11, 17이 가장 많이 사용되고 있습니다.
간단하게 각 버전들의 특징을 정리하면 다음과 같습니다.
- Java 8: 오라클이 자바 인수 후 출시한 첫 번째 LTS 버전으로 32비트를 지원하는 마지막 공식 Java 버전입니다. 람다식(Lambda), Stream API, 새로운 날짜와 시간 API(LocalDateTime 등) 등의 기능이 추가되었습니다.
- Java 11: Oracle JDK와 Open JDK가 통합되었으며, Oracle JDK가 구독형 유료 모델로 전환되었습니다. 람다 지역 변수 사용법이 변경되었고, Third Party JDK로의 이전이 필요합니다. 또한 HTTP 클라이언트 표준화 기능이 추가되었습니다.
- Java 17: 가장 최신의 LTS 버전으로 봉인 클래스(Sealed Class)가 정식 추가되었으며, 패턴 매칭 프리뷰 단계와 Incubator(Foreign Function & Memory API) 기능이 포함되었습니다. 또한, 애플 M1 및 이후 프로세서 탑재 제품군에 대한 정식 지원과 난수 생성 API 추가가 이루어졌습니다.
자바를 처음 설치하면 Java 폴더에 JDK와 JRE가 각각 설치되는 것을 확인할 수 있습니다. JDK는 자바 개발 도구를 포함하고 있고, JRE는 자바 실행 환경을 포함하고 있습니다. 따라서, 개발자가 되기 위해서는 JDK를 설치해야 합니다.
참고 : 자바 삭제 후 재설치 환경변수 설정
FAQ – 자바 설치, JDK/JRE 선택, 버전 관리 관련 자주 묻는 질문
Q. 자바로 프로그램을 실행하려는데 JDK만 있으면 되나요? JRE도 필요할까요?
JDK에는 이미 JRE가 포함되어 있어 따로 설치할 필요는 없습니다.
즉, JDK만 설치하면 자바 개발과 실행이 모두 가능하며, 일반 사용자는 JRE만 설치, 개발자는 JDK만 설치하면 됩니다.
Q. JDK를 설치했는데 컴파일 명령어(javac)가 안 먹혀요. 왜 그런가요?
javac
명령어가 동작하지 않는 경우는 대부분 환경변수 PATH 설정이 누락되었기 때문입니다.
해결 방법
- 설치된 JDK 경로 확인 (예:
C:\Program Files\Java\jdk-17\bin
) - 내PC → 속성 → 고급 시스템 설정 → 환경변수
- 시스템 변수 >
Path
편집 → JDK의bin
경로 추가 - 명령 프롬프트 새로 열고
javac -version
확인
Q. Java 8과 Java 11을 동시에 설치하고 싶은데 가능한가요?
네, 가능합니다.
다만 이 경우 시스템 기본 Java 버전을 어떻게 설정할지 명확히 지정해야 합니다.
- 환경변수 설정 시 하나의 JDK 경로만 PATH에 반영됨
- 각 프로젝트별로 버전이 다르면 JEnv, SDKMAN(리눅스), jEnv for Windows와 같은 버전 매니저 사용 권장
- 또는
JAVA_HOME
환경변수를 매번 변경하며 사용 가능
Q. Java 설치 후 프로그램 실행 시 “JAVA_HOME이 설정되지 않았습니다” 메시지가 떠요.
이 에러는 JAVA_HOME
환경변수가 누락되었을 때 나타납니다.
- JDK가 설치된 경로 확인 (예:
C:\Program Files\Java\jdk-17
) - 환경변수 → 새로 만들기 → 변수 이름:
JAVA_HOME
, 변수 값: 위 경로 Path
변수에%JAVA_HOME%\bin
도 추가- 명령어 창에서
echo %JAVA_HOME%
으로 정상 등록 여부 확인
Q. Java 8과 Java 11 중 어떤 걸 사용해야 하나요?
- 레거시 시스템/금융권/교육용 → Java 8 (32비트 지원, 범용성 높음)
- 현대적인 개발 환경/오픈JDK 기반 프로젝트 → Java 11
- 가장 최신의 장기 지원과 신기능 활용 → Java 17
→ LTS(Long Term Support) 버전 위주로 선택하는 것이 안정적입니다.
Q. Java를 삭제했다가 다시 설치했는데 실행이 안 돼요. 무엇을 확인해야 하나요?
- 이전 설치 경로가 환경변수에 남아있어 충돌 발생
- 구버전 삭제 후
JAVA_HOME
,Path
환경변수 내 오래된 경로가 없는지 확인 C:\Program Files\Java
안에 예전 JDK/JRE 폴더가 있다면 수동으로 삭제
→ 환경변수 재설정 및 시스템 재부팅 후 재확인하세요.
Q. Oracle JDK는 유료라던데 정말인가요?
- Java 8까지는 무료 배포
- Java 11부터는 Oracle JDK는 상업적 사용 시 유료, 하지만 → Adoptium(OpenJDK), Amazon Corretto, Zulu 등 무료 대안 존재
→ 기업 환경이라면 라이선스 정책 확인 필수, 개인 학습자라면 OpenJDK 추천
Q. JAVA_HOME을 설정했는데도 java -version
이 인식되지 않아요.
JAVA_HOME
만 설정하고 Path
에 %JAVA_HOME%\bin
경로를 추가하지 않은 경우입니다.
→ Path
변수 편집 → 새 항목 추가 → %JAVA_HOME%\bin
이후 새 명령 프롬프트 창에서 다시 확인해야 반영됩니다.