sourcecode

JDK와 JRE의 차이점은 무엇입니까?

copyscript 2022. 8. 31. 22:47
반응형

JDK와 JRE의 차이점은 무엇입니까?

JDK와 JRE의 차이점은 무엇입니까?

그들의 역할은 무엇이며, 어느 한쪽 또는 다른 한쪽을 사용해야 합니까?

JREJava Runtime Environment입니다.Java Virtual Machine(JVM; Java 가상 머신), Java Class Library, Java Class Library 등 컴파일된 Java 프로그램을 실행하기 위해 필요한 모든 것을 포함하는 패키지입니다.java명령어 및 기타 인프라스트럭처.그러나 새 프로그램을 만드는 데 사용할 수 없습니다.

JDK는 Java용 SDK인 Java Development Kit입니다.JRE가 가진 모든 것을 갖추고 있지만 컴파일러(javac 도구: ★★★★★★★★★★★★★★★★★)javadoc ★★★★★★★★★★★★★★★★★」jdb이치노

일반적으로 컴퓨터에서 Java 프로그램 실행에만 관심이 있는 경우 JRE만 설치합니다.그것만 있으면 돼.한편, Java 프로그래밍을 실시할 예정이라면, 대신 JDK 를 인스톨 할 필요가 있습니다.

컴퓨터에서 Java 개발을 수행할 계획이 없는 경우에도 JDK를 설치해야 할 수 있습니다.예를 들어, JSP를 사용하여 웹 애플리케이션을 전개하는 경우, 엄밀히 말하면 애플리케이션서버내에서 Java 프로그램을 실행하고 있을 뿐입니다.그럼 왜 JDK가 필요하죠?애플리케이션 서버는 JSP를 Java 서블릿으로 변환하고 서블릿을 컴파일하기 위해 JDK를 사용해야 하기 때문입니다.나는 더 많은 예가 있다고 확신한다.

위의 답변은 매우 옳다.이것은 추가 정보일 뿐입니다.

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

  • bin/자바어한 것은 '아까운'입니다.java 의 는, (「Windows」)javawJVM을 이용하다이 밖에도 다음과 같은 유틸리티가 있습니다.keytool ★★★★★★★★★★★★★★★★★」policytool.
  • conf/에는 Java 전문가가 사용할 수 있도록 사용자가 편집할 수 있는 Configuration파일이 저장되어 있습니다.
  • lib/에는 다수의 파일이 지원 파일이 있습니다.부부: :.jar.s, ", ", ", ", "Java"의 "입니다한 것은 '아까운'입니다.modules 「」이 격납되어 있습니다..classJava java java java java java 。
  • 특정 레벨에서 Java 표준 라이브러리는 네이티브 코드를 호출해야 합니다.위해 JRE가 되어 있습니다..dll (Windows) ★★.dylib (macOS) 。.soLinux) 아래에 (Linux)bin/ ★★★★★★★★★★★★★★★★★」lib/지원되는 시스템 고유의 기본 이진 코드를 제공합니다.

JDK는 디렉토리 세트이기도 합니다.JRE의 슈퍼셋으로 다음과 같은 기능이 추가되었습니다.

  • bin/이치노 중 가장 은 '아, 아, 아, 아,javac 그의 것들은 ; 을 포함한다.jar,javadoc ★★★★★★★★★★★★★★★★★」jshell.
  • jmods/표준 라이브러리의 JMOD 파일을 보관하는 가 추가되었습니다.하면, 표준 를 「」와 함께 할 수 .jlink.

여기에 이미지 설명 입력

JDK는 JRE의 슈퍼셋으로 JRE에 포함된 모든 것 외에 애플릿 및 애플리케이션 개발에 필요한 컴파일러 및 디버거 등의 도구를 포함합니다.JRE는 Java 프로그래밍 언어로 작성된 애플릿 및 애플리케이션을 실행하기 위한 라이브러리, Java Virtual Machine(JVM) 및 기타 컴포넌트를 제공합니다.

문외한으로 말하면, JDK는 할아버지 JRE는 아버지, JVM은 그들의 아들입니다.[예: JDK > JRE > JVM ]

JDK = JRE + 개발/디버깅 도구

JRE = JVM + Java 패키지 클래스(util, math, lang, awt, parames 등)+sublic 라이브러리.

JVM = 클래스 로더 시스템 + 런타임 데이터 영역 + 실행 엔진.

즉, Java 프로그래머의 경우 시스템에 JDK가 필요하며 이 패키지에는 JRE와 JVM도 포함되어 있지만 온라인 게임을 즐기는 일반 사용자라면 JRE만 필요하며 이 패키지에는 JDK가 포함되어 있지 않습니다.

JVM:

Java Virtual Machine(JVM)Java 바이트 코드를 실행하는 가상 시스템입니다.JVM은 Java 소스 코드를 이해하지 못하기 때문에 *.java 파일을 컴파일하여 JVM이 인식할 수 있는 바이트 코드를 포함하는 *.class 파일을 가져옵니다.또한 Java를 "휴대용 언어"(한 번 쓰고 어디서나 실행)로 사용할 수 있도록 하는 주체이기도 합니다.실제로 JVM의 특정 구현이 다른 시스템(Windows, Linux, MacOS, wikipedia 목록 참조)에 있으며, 그 목적은 동일한 바이트 코드로 모두 동일한 결과를 제공하는 것입니다.

JDK 및 JRE

JDK와 JRE의 차이를 설명하기 위해서는 Oracle 매뉴얼을 읽고 다음 그림을 참조하는 것이 가장 좋습니다.

Java Runtime Environment(JRE)

Java Runtime Environment(JRE; Java 런타임 환경)는 Java 프로그래밍 언어로 작성된 애플릿 및 응용 프로그램을 실행하기 위한 라이브러리, Java Virtual Machine 및 기타 구성 요소를 제공합니다.또한 JRE에는 애플릿을 일반적인 브라우저에서 실행할 수 있는 Java Plug-in과 네트워크를 통해 독립 실행형 애플리케이션을 배포할 수 있는 Java Web Start라는 두 가지 주요 도입 기술이 포함되어 있습니다.또한 엔터프라이즈 소프트웨어 개발 및 도입을 위한 Java 2 Platform, Enterprise Edition(J2EE) 기술의 기반이기도 합니다.JRE에는 애플릿과 애플리케이션을 개발하기 위한 컴파일러나 디버거 등의 도구와 유틸리티는 포함되어 있지 않습니다.

Java 개발 키트(JDK)

JDK는 JRE의 슈퍼셋으로 JRE에 포함된 모든 것 외에 애플릿 및 애플리케이션 개발에 필요한 컴파일러 및 디버거 등의 도구를 포함합니다.

JDK를 제공하는 것은 Oracle뿐만이 아닙니다.

JIT 컴파일 프로세스(서비스:Oracle 문서)

JDK > JRE > JVM

여기에 이미지 설명 입력

공식 Java 웹 사이트에서...

JRE(Java 런타임 환경):

  • 실제로 Java 프로그램을 실행하는 Java Virtual Machine*의 구현입니다.
  • Java Runtime Environment는 Java 프로그램을 실행하는 데 필요한 플러그인입니다.
  • JRE는 JDK보다 작기 때문에 필요한 디스크 용량이 적습니다.
  • JRE는 https://www.java.com에서 무료로 다운로드/지원할 수 있습니다.
  • Java로 작성된 애플리케이션과 애플릿을 실행하기 위한 JVM , 코어 라이브러리 및 기타 추가 컴포넌트가 포함되어 있습니다.

JDK(Java 개발 키트)

  • Java 기반 응용 프로그램을 개발하는 데 사용할 수 있는 소프트웨어 번들입니다.
  • Java 어플리케이션을 개발하려면 Java Development Kit가 필요합니다.
  • JDK에는 다양한 개발 도구와 함께 JRE가 포함되어 있기 때문에 디스크 공간이 더 필요합니다.
  • JDK는 https://www.oracle.com/technetwork/java/javase/downloads/에서 무료로 다운로드/지원할 수 있습니다.
  • 여기에는 JRE, API 클래스 세트, Java 컴파일러, Webstart 및 Java 애플릿과 응용 프로그램을 작성하기 위해 필요한 추가 파일이 포함됩니다.

디버깅 관점에서의1가지 차이점:

String이나 ArrayList 등의 Java 시스템클래스로 디버깅하려면 "debug information"으로 컴파일된 특별한 버전의 JRE가 필요합니다.이 정보는 JDK에 포함된 JRE에서 제공되지만 일반 JRE에서는 제공되지 않습니다.퍼포먼스를 향상시키기 위해 일반 JRE에는 이 정보가 포함되지 않습니다.

디버깅 정보란?다음은 이 블로그 투고에서 인용한 간단한 설명입니다.

최신 컴파일러는 고도로 삽입된 네스트된 제어 구조와 임의로 입력된 변수를 머신 코드(Java의 경우 바이트 코드)라고 불리는 큰 비트 더미로 변환하는 데 매우 능숙합니다.이것의 유일한 목적은 타겟 CPU(JVM의 가상 CPU가 취득하는 것)에서 가능한 한 빨리 실행되는 것입니다.여러 기계 코드 명령으로 반전되었습니다.변수는 스택, 레지스터, 또는 완전히 최적화되어 있는 모든 장소에 분산되어 있습니다.구조나 오브젝트는 결과 코드에는 존재하지 않습니다.단순히 추상화되어 메모리 버퍼에 하드 코딩된 오프셋으로 변환됩니다.

그러면 디버거는 어떤 함수의 엔트리에서 중단하라고 했을 때 어디서 멈출지 어떻게 알 수 있을까요?변수의 값을 요구할 때 무엇을 보여줘야 하는지 어떻게 알 수 있을까요?정답은 디버깅 정보입니다.

디버깅 정보는 머신 코드와 함께 컴파일러에 의해 생성됩니다.실행 가능 프로그램과 원본 소스 코드 간의 관계를 나타냅니다.이 정보는 미리 정의된 형식으로 인코딩되어 기계 코드와 함께 저장됩니다.이러한 포맷은 여러 플랫폼과 실행 파일을 위해 수년간 개발되었습니다.

JVM, JRE, JDK - 이것들은 모두 Java 언어의 백본입니다.각 컴포넌트는 개별적으로 동작합니다.JDK와 JRE는 물리적으로 존재하지만 JVM은 물리적으로 존재하지 않는 추상 머신입니다.

JVM은 "바이트 코드"로 알려진 중간 코드를 확인하는 데 사용되는 JDK 및 JRE의 하위 시스템입니다.먼저 Java 컴파일러(javac)에 의해 생성된 "클래스 파일"(.c 확장자 포함)을 JVM 서브시스템 클래스로더 및 용도에 따라 분류된 메모리 위치(클래스 영역, 스택, 힙 및 PC 레지스터)를 통해 로드합니다.그런 다음 모든 바이트 코드를 체크하여 Java에서 반환되었는지 확인하고 네트워크에 의한 모든 메모리액세스 가능 여부를 확인합니다.그 후 통역사의 작업은 프로그램 전체를 한 줄씩 확인하는 것으로 시작됩니다.그 결과는 런타임 설비의 JRE(Java Runtime Environment)를 통해 콘솔/브라우저/애플리케이션에 최종적으로 표시됩니다.

JRE는 JDK의 서브시스템으로 JVM, 클래스, .jar 파일 등의 실행 가능 파일을 제공합니다.

JDK는 Java Development Kit의 약자입니다.클래스, 메서드, 스윙, AWT, 패키지, 자바(인터프리터), 자바(컴파일러), 애플릿 뷰어(애플릿 애플리케이션 뷰어) 등 자바 프로그래밍에 사용되는 모든 필수 컴포넌트가 포함되어 있습니다.결론적으로 이 파일에는 스탠드아론 또는 웹 기반 애플리케이션 개발에 필요한 모든 파일이 포함되어 있습니다.

다음은 Oracle http://docs.oracle.com/javase/7/docs/technotes/guides/에서 직접 제공하는 간단한 답변입니다.

Java SE 런타임 환경(JRE)

JRE는 Java 프로그래밍 언어로 작성된 애플릿 및 애플리케이션을 실행하는 데 필요한 라이브러리, Java 가상 머신 및 기타 구성 요소를 제공합니다.이 런타임 환경은 응용 프로그램과 함께 재배포하여 독립 상태로 만들 수 있습니다.

Java SE 개발 키트(JDK)

JDK에는 애플릿 및 애플리케이션 개발에 필요하거나 유용한 컴파일러 및 디버거와 같은 JRE 및 명령줄 개발 도구가 포함되어 있습니다.

JRE

JRE는 Java Runtime Environment의 약자입니다.런타임 환경을 제공하기 위해 사용됩니다.이것은 JVM의 구현입니다.그것은 물리적으로 존재한다.이 파일에는 JVM이 런타임에 사용하는 라이브러리 세트 및 기타 파일이 포함되어 있습니다.

JDK

JDK는 Java Development Kit의 약자입니다.그것은 물리적으로 존재한다.JRE + 개발 도구가 포함되어 있습니다.

링크:- http://www.javatpoint.com/difference-between-jdk-jre-and-jvm

보통 브라우저나 컴퓨터에서 Java 프로그램 실행에만 관심이 있는 경우 JRE만 설치합니다.그것만 있으면 돼.한편, Java 프로그래밍을 할 예정이라면 JDK도 필요합니다.

각 OS의 구성이 다르기 때문에 JVM, JRE 및 JDK는 플랫폼에 의존합니다.그러나 Java는 플랫폼에 의존하지 않습니다.

Java Virtual Machine(JVM; Java 가상 머신)은 Java 바이트 코드를 실행하는 런타임 시스템입니다.

JRE는 Java 애플리케이션을 실행하는 데 필요한 환경(표준 라이브러리 및 JVM)입니다.

JDK에는 애플릿 및 애플리케이션 개발에 필요하거나 유용한 컴파일러 및 디버거와 같은 JRE 및 명령줄 개발 도구가 포함되어 있습니다.

JVM(Java Virtual Machine)은 추상 머신입니다.Java 바이트 코드를 실행할 수 있는 런타임 환경을 제공하는 사양입니다.

JRE는 Java Runtime Environment의 약자입니다.런타임 환경을 제공하기 위해 사용됩니다.이것은 JVM의 구현입니다.그것은 물리적으로 존재한다.라이브러리 세트 및 런타임에 JVM이 사용하는 기타 파일 포함

JDK는 Java Development Kit의 약자입니다.그것은 물리적으로 존재한다.JRE + 개발 도구 포함

Java 프로그램을 실행하고 개발하지 않으면 Java 런타임 환경(JRE)을 다운로드합니다.개발하려면 Java Development Kit 또는 JDK를 다운로드하십시오.

JDK

JDK는 Java 어플리케이션을 개발하고 실행하기 위해 필요한 것이 포함된 키트입니다.

JDK는 애플리케이션, 컴포넌트 및 애플릿을 구축하기 위한 개발 환경으로 제공됩니다.

JRE

컴파일된 형식으로 Java 응용 프로그램을 실행하는 데 필요한 모든 것이 포함되어 있습니다.도서관이나 다른 것들은 필요 없어요.필요한 것은 모두 정리되어 있습니다.

JRE는 개발에는 사용할 수 없습니다.어플리케이션 실행에만 사용됩니다.

Java 프로그래머인 경우 시스템에 JDK가 필요하며 이 패키지에는 JRE와 JVM도 포함되어 있지만 온라인 게임을 즐기는 일반 사용자인 경우 JRE만 필요하며 이 패키지에는 JDK가 포함되어 있지 않습니다.

JVM

JVM(Java Virtual Machine)은 추상 머신입니다.Java 바이트 코드를 실행할 수 있는 런타임 환경을 제공하는 사양입니다.

JVM은 많은 하드웨어 및 소프트웨어 플랫폼에서 사용할 수 있습니다.각 OS의 구성이 다르기 때문에 JVM, JRE 및 JDK는 플랫폼에 의존합니다.그러나 Java는 플랫폼에 의존하지 않습니다.

JRE

컴파일된 형식으로 Java 응용 프로그램을 실행하는 데 필요한 모든 것이 포함되어 있습니다.도서관이나 다른 것들은 필요 없어요.필요한 것은 모두 정리되어 있습니다.

JRE는 개발에는 사용할 수 없습니다.어플리케이션 실행에만 사용됩니다.

Java SE 개발 키트(JDK)

JDK에는 애플릿 및 애플리케이션 개발에 필요하거나 유용한 컴파일러 및 디버거와 같은 JRE 및 명령줄 개발 도구가 포함되어 있습니다.

(소스:GeeksForGeeks Q&A, Java 플랫폼의 개요)

심플하게:

JVM은 Java 코드가 실행되는 가상 머신입니다.

JRE는 Java 애플리케이션 실행에 필요한 환경(표준 라이브러리 및 JVM)입니다.

JDK는 개발자 도구와 문서를 갖춘 JRE입니다.

이러한 용어(JVM, JDK, JRE)를 명확하게 이해하는 것은 용도와 차이점을 파악하기 위해 필수적입니다.

JVM Java Virtual Machine(JVM; Java 가상 머신)은 Java 바이트 코드를 실행하는 런타임 시스템입니다.JVM은 컴파일된 일련의 명령을 실행하고 메모리 위치를 조작할 수 있는 가상 컴퓨터와 같습니다.Java 컴파일러는 소스 코드를 컴파일할 때 .class 파일에 바이트 코드라고 불리는 고도로 최적화된 명령 집합을 생성합니다.JVM은 이러한 바이트 코드 명령을 해석하여 머신 고유의 코드로 변환하여 실행합니다.

JDK Java Development Kit(JDK)는 Java 응용 프로그램을 개발하고 실행하는 데 사용할 수 있는 소프트웨어 개발 환경입니다.JRE와 Java 컴파일러, 인터프리터, 애플릿 뷰어, 문서 뷰어 등의 프로그래밍 도구 세트를 포함합니다.JDK는 Java SE, Java EE 또는 Java ME 플랫폼을 통해 구현됩니다.

JRE Java Runtime Environment(JRE)는 JDK의 일부로서 JVM, 코어 클래스 및 애플리케이션 개발을 지원하는 여러 라이브러리를 포함합니다.JRE는 JDK의 일부로 사용할 수 있지만 별도로 다운로드하여 사용할 수도 있습니다.

자세한 내용은 블로그 Jdk Jre Jvm과 차이점을 참조하십시오.

jdk는 컴파일하여 자바 코드를 바이트 코드로 변환하는 데 필요하며, jre는 바이트 코드를 실행하는 데 필요합니다.

JDK에는 애플릿 및 애플리케이션 개발에 필요하거나 유용한 컴파일러 및 디버거와 같은 JRE 및 명령줄 개발 도구가 포함되어 있습니다.

JRE는 기본적으로 Java 프로그램이 실행되는 Java Virtual Machine입니다.애플릿 실행을 위한 브라우저 플러그인도 포함되어 있습니다.

JDK는 추상 머신입니다.Java 바이트 코드를 실행할 수 있는 런타임 환경을 제공하는 사양입니다.

@Jaimin Patel에 따르면 기본적으로 JVM < JRE < JDK 입니다.

JDK와 JRE의 차이점은 JDK는 Java용 소프트웨어 개발 키트이며 JRE는 프로그램을 실행하는 장소라는 것입니다.

만약 당신이 개발자라면, 당신의 역할은 프로그램을 개발하는 것뿐만 아니라 프로그램을 실행하는 것입니다.JDK에서 제공하는 개발 및 실행 환경이 필요합니다.

고객이라면 개발에 대해 걱정할 필요가 없습니다.JRE가 제공하는 프로그램을 실행하고 결과만 얻을 수 있는 환경이 필요합니다.

JRE는 응용 프로그램을 실행하지만 JVM은 명령을 한 줄씩 읽기 때문에 인터프리터입니다.

JDK=JRE+개발도구

JRE=JVM+라이브러리 클래스

JRE

JRE는 Java Runtime Environment의 약자입니다.런타임 환경을 제공하기 위해 사용됩니다.이것은 JVM의 구현입니다.그것은 물리적으로 존재한다.이 파일에는 JVM이 런타임에 사용하는 라이브러리 세트 및 기타 파일이 포함되어 있습니다.

JVM 구현은 썬마이크로시스템즈 외에 다른 기업에서도 활발하게 출시되고 있다.

여기에 이미지 설명 입력

JDK

JDK는 Java Development Kit의 약자입니다.그것은 물리적으로 존재한다.JRE + 개발 도구가 포함되어 있습니다.

여기에 이미지 설명 입력

언급URL : https://stackoverflow.com/questions/1906445/what-is-the-difference-between-jdk-and-jre

반응형