programing

JVM, JDK, JRE 및 OpenJDK의 차이점은 무엇입니까?

itsource 2022. 7. 3. 23:29
반응형

JVM, JDK, JRE 및 OpenJDK의 차이점은 무엇입니까?

JVM, JDK, JREOpenJDK의 차이점은 무엇입니까?

자바에서 프로그래밍을 하다가 이런 문구를 접하게 되었습니다만, 어떤 차이가 있습니까?

JVM

Java Virtual Machine(JVM)은 Java 바이트 코드를 실행하는 가상 시스템입니다.JVM은 Java 소스 코드를 인식하지 않기 때문에 컴파일이 필요합니다.*.java하는 *.classJVM에서 인식되는 바이트 코드를 포함하는 파일입니다.또한 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뿐만이 아닙니다.

Open JDK

OpenJDK는 JDK의 오픈 소스 구현이며 오라클 JDK의 기반입니다.Oracle JDK와 OpenJDK는 거의 차이가 없습니다.

차이점은 이 블로그에 기재되어 있습니다.

Q: OpenJDK 저장소에 있는 소스 코드와 Oracle JDK 구축에 사용하는 코드의 차이점은 무엇입니까?

A: Oracle JDK 릴리스의 빌드 프로세스는 매우 비슷합니다.OpenJDK 7을 기반으로 구축됩니다.Deployment Code와 같은 몇 가지 요소에는 Oracle의 Java Plugin 및 Java WebStart 구현과 그래픽 래스터라이저와 같은 비공개 소스 서드파티 컴포넌트, R과 같은 일부 오픈 소스 서드파티 컴포넌트가 포함되어 있습니다.기타 문서나 서드파티 폰트 등, 몇개의 비트와 조각이 있습니다.앞으로 JRockit Mission Control 등 상용 기능(Oracle JDK에서는 아직 제공되지 않음)을 제외한 Oracle JDK의 모든 부분을 오픈 소스화하고 장애가 있는 서드파티 컴포넌트를 오픈 소스 대체 컴포넌트로 대체하여 코드 베이스 간에 보다 긴밀한 패리티를 실현하는 것을 목표로 하고 있습니다.

JDK 11 업데이트

Oracle JDK와 Oracle OpenJDK의 차이를 명확히 하기 위한 Donald Smith의 기사 https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11-and-later

@Alan Evangelista의 코멘트에서 언급한 바와 같이 Java Web Start는 Java SE 9에서 Oracle에 의해 폐지되고 Java SE 11에서 삭제되었습니다.

JVM은 Java Virtual Machine으로 실제로 Java ByteCode를 실행합니다.

JRE는 Java Runtime Environment(Java 런타임 환경)입니다.JVM은 Java 프로그램을 실행하기 위해 필요합니다.

JDK는 Java Development Kit입니다.JRE는 Java 소스 코드를 컴파일하기 위해 필요한 javac 및 기타 프로그래밍 도구가 추가되었습니다.

OpenJDK는 특정 JDK 구현입니다.

JDK(Java 개발 키트)

Java Developer Kit에는 Java 프로그램을 개발하는 데 필요한 도구와 프로그램을 실행하기 위한 JRE가 포함되어 있습니다.이 툴에는 컴파일러(javac.exe), Java 애플리케이션 런처(java.exe), 애플릿 뷰어 등이 있습니다.

컴파일러는 자바 코드를 바이트 코드로 변환합니다.Java 응용 프로그램런처는 JRE를 열고 클래스를 로드하고 메인 메서드를 호출합니다.

직접 프로그램을 작성하고 컴파일하려면 JDK가 필요합니다.Java 프로그램을 실행하는 경우 JRE로 충분합니다.

JRE는 Java 파일 실행을 대상으로 합니다.

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

JDK는 주로 Java 개발을 대상으로 합니다.즉, Java 패키지를 사용하여 Java 파일을 만들고 Java 파일을 컴파일하며 Java 파일을 실행할 수 있습니다.

JRE(Java 런타임 환경)

Java Runtime Environment에는 JVM, 클래스 라이브러리 및 기타 지원 파일이 포함되어 있습니다.컴파일러, 디버거 등의 개발 도구가 포함되어 있지 않습니다.실제로 JVM은 프로그램을 실행하며 클래스 라이브러리 및 JRE에서 제공되는 기타 지원 파일을 사용합니다.Java 프로그램을 실행하려면 시스템에 JRE를 설치해야 합니다.

Java Virtual Machine은 플랫폼에 의존하지 않는 코드 실행 방법을 제공합니다.즉, 어떤 기계든 한 번 컴파일을 하고 어디서든 실행할 수 있습니다.

JVM(Java 가상 머신)

Java 파일을 컴파일할 때 알 수 있듯이 출력은 'exe'가 아니라 '.class' 파일입니다..class' 파일은 JVM이 인식할 수 있는 Java 바이트 코드로 구성됩니다.Java Virtual Machine은 기본 운영 체제 및 하드웨어 조합에 따라 바이트 코드를 시스템 코드로 해석합니다.JVM은 가비지 컬렉션, 어레이 경계 체크 등의 모든 작업을 담당합니다.JVM은 플랫폼에 의존합니다.

JVM은 기본 운영 체제 및 시스템 하드웨어 아키텍처에 의존하지 않는 시스템 인터페이스를 제공하기 때문에 "가상"이라고 불립니다.하드웨어 및 운영체제로부터의 이러한 독립성은 Java 프로그램의 write-one-run-anywhere 가치의 기초가 됩니다.

다양한 JVM 구현이 있습니다.퍼포먼스, 신뢰성, 속도 등에 따라 다를 수 있습니다.가비지 컬렉션 프로세스의 동작은 JVM에 의존하며 Java 사양은 이를 위한 특별한 방법을 정의하지 않는 등 Java 사양에서 기능의 구현 방법을 언급하지 않는 영역에서는 다릅니다.

Java Virtual Machine(JVM; Java 가상 머신)은 Java ByteCode를 실행할 수 있는 가상 머신입니다.Java 소프트웨어 플랫폼의 코드 실행 컴포넌트입니다.

Java Development Kit(JDK)Java 개발자를 대상으로 한 Oracle Corporation 제품입니다.Java가 도입된 이후 지금까지 가장 널리 사용되고 있는 Java Software Development Kit(SDK; Java 소프트웨어 개발 키트)입니다.

Java Runtime Environment, Java Runtime, Runtime Environment라고도 합니다.

OpenJDK(Open Java Development Kit)는 Java 프로그래밍 언어의 무료 오픈 소스 구현입니다.이것은 2006년에 Sun Microsystems가 시작한 노력의 결과입니다.구현은 링크 예외를 제외하고 GNU General Public License(GPL)에 따라 라이센스가 부여됩니다.

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

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

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

OpenJDK는 Oracle이 소유한 일반적인 JDK와 달리 JDK의 오픈 소스 버전입니다.

JDK(Java 개발 키트):

  • 에는 Java 프로그램을 개발하는 데 필요한 도구가 나와 있습니다.
  • 직접 프로그램을 작성하고 컴파일하려면 JDK가 필요합니다.
  • JDK는 주로 Java 개발을 대상으로 합니다.

JRE(Java 런타임 환경)

Java Runtime Environment에는 JVM, 클래스 라이브러리 및 기타 지원 파일이 포함되어 있습니다.JRE는 Java 파일 실행을 대상으로 합니다.

JVM(Java 가상 머신)

JVM은 기본 운영 체제 및 하드웨어 조합에 따라 바이트 코드를 기계 코드로 해석합니다.가비지 컬렉션, 어레이 경계 검사 등의 모든 작업을 담당합니다.Java Virtual Machine은 플랫폼에 의존하지 않는 코드 실행 방법을 제공합니다.

JDK - Java를 바이트 코드로 컴파일합니다.디버거, 컴파일러 등으로 구성됩니다.

javac file.java // Is executed using JDK

JVM - 바이트 코드를 실행합니다.JVM은 Java 플랫폼을 독립적으로 만드는 것입니다.그러나 JVM은 플랫폼에 따라 다릅니다.

JRE - Java 프로그램을 실행하기 위한 Java 런타임 라이브러리와 함께 JVM.

JVM : Java 프로그램을 실행하는 방법/리소스를 설명하는 사양입니다.실제로 바이트 코드를 실행하여 Java 플랫폼을 독립시킵니다.이 경우 플랫폼마다 다릅니다.윈도우즈용 JVM은 UNIX용 JVM으로 작동할 수 없습니다.

JRE : JVM 구현 (JVM + 런타임 라이브러리)

JDK : JRE + Java 컴파일러 및 Java 프로그램을 처음부터 구축하기 위한 기타 필수 도구

언급할 가치가 있는 또 다른 측면:

JDK(자바 개발 키트)

이름 그대로 개발 목적으로 필요합니다.

예를 들어 소프트웨어 회사는 Java 프로그램을 컴파일하고 실행하는 새로운 소프트웨어를 개발해야 하기 때문에 JDK를 컴퓨터에 설치합니다.

JDK = JRE + JVM이라고 할 수 있습니다.

JRE(Java 런타임 환경)

Java 프로그램을 실행하기 위해 필요합니다.Java 프로그램은 컴파일 할 수 없습니다.

예를 들어 온라인 게임을 실행하려는 일반 컴퓨터 사용자는 Java 프로그램을 실행하기 위해 시스템에 JRE가 필요합니다.

JVM(Java 가상 머신)

시시 것은 플랫폼을 실행하기 입니다..classJava 프로그램을 컴파일한 후에 얻을 수 있는 파일입니다.Windows, Mac, Linux 중 windows windows 。

JDK 열기

음, 위에서 말했듯이.현재 JDK는 다른 회사에서 제조되고 있으며, 그 중 하나는 오픈 소스이며, 그 중 하나는 OpenJDK이고, 다른 하나는 Oracle Corporation의 JRockit JDK 또는 IBM JDK입니다.

그러나 일반 사용자에게는 모두 동일하게 보일 수 있습니다.

결론

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

즉, JDK는 할아버지 JRE는 아버지이고 JVM은 그들의 아들입니다.

Java는 언어이며 엄격하고 강력한 형식의 구문을 포함합니다.

Java 2 Platform, Standard Edition(J2SE라고도 함)은 플랫폼을 참조하고 클래스를 java.devel 및 java.io 패키지에 포함시켰습니다.Java 어플리케이션의 기반이 되는 구성 요소였습니다.

Java Virtual Machine(JVM; Java 가상 머신)은 컴파일된 Java 코드를 실행하는 소프트웨어 가상 머신입니다.컴파일된 Java 코드는 단순히 바이트 코드이기 때문에 JVM은 실행 전에 해당 바이트 코드를 머신 코드로 컴파일합니다(이것은 종종 Just In Time 컴파일러 또는 JIT 컴파일러라고 불립니다).또한 JVM은 애플리케이션 코드가 필요하지 않도록 메모리 관리도 처리합니다.

Java Development Kit(JDK)는 Java 개발자가 Java 응용 프로그램을 만드는 데 사용하는 소프트웨어의 일부이며, 지금까지도 그대로입니다.여기에는 Java 언어 컴파일러, 문서 생성기, 네이티브 코드 작업 도구 및 플랫폼 클래스를 디버깅하기 위한 플랫폼의 Java 소스 코드(일반적으로)가 포함되어 있습니다.

Java Runtime Environment(JRE; Java 런타임 환경)는 컴파일된 Java 애플리케이션을 실행하기 위해 최종 사용자가 다운로드하는 소프트웨어의 일부였습니다.JVM은 포함되어 있지만 JDK에 번들된 개발 도구는 포함되어 있지 않습니다.단, JDK에는 JRE가 포함되어 있습니다.

JVM : 이것은 실제로 바이트코드 인터프리터를 의미합니다.플랫폼에 의존합니다.예: Windows 플랫폼에서는 'java.exe' 또는 'javaw'입니다.exe' percess는 jvm 프로세스입니다.

JDK : Java 프로그램/애플리케이션 개발 및 실행에 필요한 라이브러리와 유틸리티를 포함하는 툴킷입니다.

JRE:는 Java application.ie의 실행 환경이며 컴파일된 프로그램의 jvm을 포함한 런타임 의존관계만 지원합니다.자바 프로그램을 컴파일하려면 jdk가 필요합니다.

JVM : Java의 가상 머신.는 Java 코드로 수행할 작업을 머신에 지시합니다.JVM을 그대로 다운로드할 수 없습니다.다른 컴포넌트에 동봉되어 있습니다.

JRE: 위에서 언급한 다른 컴포넌트는 JRE입니다.런타임 환경을 만들기 위한 JVM+ 기타 jars입니다.

JDK: JRE(JVM 포함)를 포함합니다.JDK를 취득한 후에는 JRE와 JVM을 별도로 설치할 필요가 없습니다..java 파일을 .class 파일로 컴파일하는 컴파일러가 포함되어 있습니다.

JVM

JVM(Java Virtual Machine)은 추상 머신입니다.Java 바이트 코드를 실행할 수 있는 런타임 환경을 제공하는 사양입니다.JVM은 많은 하드웨어 및 소프트웨어 플랫폼에서 사용할 수 있습니다.

JRE

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

JDK

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

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

요약:

  • JRE = JVM + Java 패키지(util, math, lang, awt, swing 등) + 런타임 라이브러리
  • JDK = JRE + 개발/디버깅 도구

Java로 개발하려면 JDK가 필요하지만 Java만 실행하려면 JRE가 필요합니다.

  1. 개발자는 JDK를 사용하여 개발하며, 먼저 .java 소스 코드를 작성합니다.
  2. 개발자는 코드를 디버깅하고 코드를 JRE의 .class 바이트 코드 실행 파일로 컴파일합니다.
  3. 실행 파일은 JVM에 의해 실행되며 바이트 코드를 머신이 실행할 수 있는 네이티브 머신 코드로 변환합니다.

여기에 이미지 설명 입력

이들의 관계는 다음과 같습니다.

여기에 이미지 설명 입력

★★★★★★★★★★★★★★★★★★:
JDK, 및 JVMJava JDK, JRE » JVM

JDK - 다음과 같은 도구javac*.java 파일을 *.class 바이트 코드 파일로 컴파일하는 데 사용됩니다(기본적으로 Java 프로그램 개발).

JRE - *.jar 파일 실행 도구(기본적으로 Java 프로그램 실행)

JVM - *.class 파일을 실행 가능한 머신 코드로 컴파일하는 도구(모든 Java 바이트 코드 실행)

OpenJDK는 Java JDK의 배포일 뿐입니다.

JDK, JRE, JDK를 설명하는 심플한 이미지.

JDK 일반적으로 이것은 개발자와 같은 개발 설정에만 설치됩니다. QA 시스템은 기업 내에서 실시간으로 설치됩니다.서버에서 실행 중인 원래 코드에는 JDK가 없습니다.

JRE는 JDK의 일부이며 독립적으로 서버에 설치할 수 있습니다.사용자 요청을 처리하는 실시간 서버에서는 JRE만 설치되고 개발자에 의해 개발된 코드(*.class 형식)가 사용됩니다.

JVM Developer는 개발 머신에서 테스트 및 실행되는 코드를 개발했습니다.실행 단계에는 Java용 미디어가 필요합니다.

.class 파일은 네이티브코드가 아닙니다(CPU로 인식되는 코드)..java 파일이 네이티브 코드로 직접 변환되면 WORA(Write Once Run Anywhere) 개념을 달성할 수 없습니다.

네이티브 코드는 OS마다 다릅니다.그래서 Java는 .class라는 중간 파일과 마법의 프로그램 "JVM"을 만들었습니다.JVM은 .class를 네이티브 코드로 변환합니다.

JVM Java Virtual Machine 은 실제로 Java 바이트 코드를 실행합니다.이것은 JAVA 플랫폼의 실행 블록입니다.바이트 코드를 기계 코드로 변환합니다.

JRE Java Runtime Environment는 Java 응용 프로그램 실행에 필요한 최소한의 요건을 제공합니다.Java Virtual Machine(JVM; Java 가상 머신), 코어 클래스 및 지원 파일로 구성됩니다.

JDK Java Development Kit에는 애플리케이션 소프트웨어를 개발하기 위한 모든 도구가 포함되어 있습니다.JRE+JVM과 같습니다.

Open JDK는 Java 플랫폼의 무료 오픈 소스 구현입니다.

일반 용어:- JDK = JRE + 개발/디버깅 도구입니다. 여기서 JDK는 Java와 함께 작업하기 위한 완벽한 패키지이며 컴파일 작성부터 실행까지 모두 지원합니다.반면 JRE는 코드(바이트 코드) 실행일 뿐입니다.

주의:- JDK를 설치하든 JRE를 설치하든 JVM은 두 패키지와 함께 제공되며, JVM은 JIT 컴파일러가 바이트 코드를 머신 고유의 코드로 변환하는 부분입니다.

JDK, JRE, JVM 및 J에 대한 기사를 읽어 보십시오.IT부문

JDK: Java 코드를 작성하고 실행하는 데 필요한 전체 패키지

OpenJDK: JDK의 독립적 구현으로 대폭 개선

JVM: Java 코드를 바이트 코드로 변환하고 Java 코드를 컴파일, 로드, 검증, 오류 확인 및 실행하는 방법을 알려주는 사양을 제공합니다.

JRE: 일부 Java 라이브러리를 사용하여 프로그램을 실행하는 JVM 구현

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

JDK=JRE+개발도구

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

JVM은 Java Virtual Machine으로 약칭되며 JVM은 Java 아키텍처의 주요 구성요소입니다.JVM은 C 프로그래밍 언어로 작성됩니다.Java 컴파일러는 JVM용 바이트 코드를 생성합니다.JVM은 바이트 코드를 읽고 바이트 코드를 검증하고 코드를 ibrary와 링크합니다.

JREJava Runtime Environment로 약칭됩니다.런타임에 환경을 제공하는 것입니다.그것은 물리적으로 존재한다.여기에는 JVM + 라이브러리 세트(jar) + 기타 파일이 포함됩니다.

JDK는 Java Development Kit(Java Development Kit)로 줄여서 Java 어플리케이션을 개발하고 있습니다.또한 Java 어플리케이션 디버깅 및 감시.JDK에는 JRE + 개발도구(javac, java)가 포함되어 있습니다.

OpenJDK OpenJDK는 Sun JDK의 오픈 소스 버전입니다.Oracle JDK는 Sun의 공식 JDK입니다.

언급URL : https://stackoverflow.com/questions/11547458/what-is-the-difference-between-jvm-jdk-jre-openjdk

반응형