개발여행의 블로그

[ Java ] JDK, JRE 차이점(JDK란? JRE란?) 본문

개발/JAVA&Spring

[ Java ] JDK, JRE 차이점(JDK란? JRE란?)

개발 여행 2020. 10. 8. 10:55
728x90

JDK와 JRE의 차이?

 

출처_ https://www.oracle.com

JRE란?

JRE( Java Runtime Environment )는 자바 가상 머신( Java Virtual Machine ), 자바 클래스 라이브러리( Java class library ), 자바 명령( Java command ) 및 기타 인프라를 포함한 컴파일된 Java 프로그램을 실행하는데 필요한 패키지이다.

 

 

JRE는 이름에서 알 수 있듯이 환경이다. 기본적으로 Java 관련 파일이 있는 디렉터리이다.

 

포함되어 있는 폴더와 파일에 대해 설명을 간단하게 하면,

  • bin/ : Java 실행 프로그램이 포함되어 있다. JVM을 시작하는 java(Window의 경우 javaw)가 포함되어 있다. 또한, keytool 및 policytool과 같은 다른 유틸리티도 있다.

  • conf/ : 사용자가 편집할 수 있는 구성 파일( configuration files )이 있다.

  • lib/ : lib에는 여러 가지 supporting 파일이 있다. 예를 들어 일부 .jar 구성 파일, 속성 파일, 글꼴, 번역, 인증서 등 Java의 모든 trimming들이 있다. 가장 중요한 것은 모듈인데, Java 표준 라이브러리의 .class 파일을 포함하는 모듈이 있다.

  • 정해진 수준에서 Java 표준 라이브러리는 네이티브 코드를 호출해야 한다. 이를 위해 JRE에는 시스템 별 네이티브 바이너리 코드를 지원하는 .dill(Window), dylib(macOS), .so(Linux) 파일이 bin/ 또는 lib/ 아래에 포함되어 있다.

 

JDK란?

JDK( Java Development Kit )는 Java를 사용하기 위해 필요한 모든 기능을 갖춘 Java용 SDK( Software Development Kit )이다.

JRE에 있는 모든 것뿐만 아니라 컴파일러(javac)와 jdb, javadoc과 같은 도구도 있다. 즉 JDK는 프로그램을 생성하고 컴파일할 수 있다.

 

JDK 또한 디렉터리의 세트이다. 아래와 같은 몇 가지 추가 사항이 있는 JRE의 상위 집합이다.

  • bin/ 은 개발 도구로 확대되었다. 그중 가장 중요한 것은 .jar, javadoc, jshell을 포함한 javac이다.

  • 표준 라이브러리용 JMOD파일을 보유하는 jmods/가 추가되었다. 이러한 파일은 표준 라이브러리를 jlink와 함께 사용하는 것을 허용한다.

 

 

정리하자면, JDK는 JRE를 포함하고 있다. 

 

일반적으로 컴퓨터에서 Java 프로그램을 실행하는데만 포커스를 둔다면, JRE만 설치하면 된다. 반면에, Java 프로그래밍을 할 계획이라면 JDK를 설치해야 한다.

 

Java 프로그래밍을 수행할 계획이 없더라도 JDK를 설치해야 하는 경우가 있다. 예를 들어 JSP를 사용하여 웹 애플리케이션을 배포하는 경우 기술적으로는 애플리케이션 서버 내에서 Java 프로그램을 실행하는 것이기 때문에 JDK가 필요하다.

애플리케이션 서버는 JSP를 Java 서블릿으로 변환하고 JDK를 사용하여 servlet을 컴파일해야 하기 때문이다.

 

 

 

 

출처 - stackoverflow.com/questions/1906445/what-is-the-difference-between-jdk-and-jre

728x90

'개발 > JAVA&Spring' 카테고리의 다른 글

[Spring]Mybatis에서 update 여러 번 실행(foreach 활용)  (0) 2021.03.15
Comments