`

JDK、JRE和JVM之间有什么区别?

阅读更多

简介

JDKJava Developer´s Kit(java开发工具包)

程序员使用,包括调试工具、运行你编写的JAVA程序和JVM
JRE
Java Runtime Environment(java运行环境),运行你编写的JAVA程序和JVM
JVM
Java Virtual Machine(java虚拟机),运行.class程序

 

1JVM -- java virtual machine
       JVM
就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可 以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。

JVM Java 平台的基础,和实际的机器一样,它也有自己的指令集,并且在运行时操作不同的内存区域。 JVM 通过抽象操作系统和 CPU 结构,提供了一种与平台无关的代码执行方法,即与特殊的实现方法、主机硬件、主机操作系统无关。但是在一些小的方面, JVM 的实现也是互不相同的,比如垃圾回收算法,线程调度算法(可能不同 OS 有不同的实现)。

JVM 的主要工作是解释自己的指令集(即字节码)到 CPU 的指令集或 OS 的系统调用,保护用户免被恶意程序骚扰。 JVM 对上层的 Java 源文件是不关心的,它关注的只是由源文件生成的类文件( class file )。类文件的组成包括 JVM 指令集,符号表以及一些补助信息。

2JRE -- java runtime environment
       JRE
是指java运行环境。光有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。在JDK的安装目 录里你可以找到jre目录,里面有两个文件夹binlib,在这里可以认为bin里的就是jvmlib中则是jvm工作所需要的类库,而jvm lib和起来就称为jre。所以,在你写完java程序编译成.class之后,你可以把这个.class文件和jre一起打包发给朋友,这样你的朋友就 可以运行你写程序了。(jre里有运行.classjava.exe

 JRE Sun 公司发布的一个更大的系统,它里面就有一个 JVM JRE 就与具体的 CPU 结构和操作系统有关,我们从 Sun 下载 JRE 的时候就看到了不同的各种版本。同 JVM 一起组成 JRE 的还有一些 API (如 awt swing 等)。 JRE 是运行 Java 程序必不可少的。

JRE Java Runtime Environment ),是运行 Java 程序必不可少的(除非用其他一些编译环境编译成.exe可执行文件……),JRE的地位就象一台PC机一样,我们写好的Win32应用程序需要操作系统帮 我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。

JRE里面有一个 JVM JRE 与具体的 CPU 结构和操作系统有关,我们从 Sun 下载 JRE 的时候就看到了不同的各种版本,,同 JVM 一起组成 JRE 的还有一些 API (如 awt swing 等), JRE 是运行 Java 程序必不可少的.

3JDK -- java development kit
       JDK
java开发工具包,基本上每个学java的人都会先在机器上装一个JDK,那他都包含哪几部分呢?让我们看一下JDK的安装目录。在目录下面有 六个文件夹、一个src类库源码压缩包、和其他几个声明文件。其中,真正在运行java时起作用的是以下四个文件夹:binincludelib jre。现在我们可以看出这样一个关系,JDK包含JRE,而JRE包含JVM
       bin:
最主要的是编译器(javac.exe)
       include:java
JVM交互用的头文件
       lib
:类库
       jre:java
运行环境
(注意:这里的binlib文件夹和jre里的binlib是不同的)总的来说JDK是用于java程序的开发,jre则是只能运行class而没有编译的功能。

       eclipseidea等其他IDE有自己的编译器而不是用JDK bin目录中自带的,所以在安装时你会发现他们只要求你选中jre路径就ok了。

分享到:
评论

相关推荐

    jdk、jre、jvm的区别

    在深入探讨JDK、JRE与JVM之间的区别之前,我们首先需要明确这三个概念的基本定义及其各自的作用。对于初学者而言,理解这些核心组件是学习Java编程的基础。 #### 二、JVM(Java虚拟机) Java虚拟机(JVM)是Java...

    Java中JDKJRE和JVM解析.doc

    在Java编程领域,JDK、JRE和JVM这三个概念是至关重要的基础知识点。虽然它们经常被提及,但很多人仍然对它们之间的关系和各自的功能感到困惑。这篇文章将深入探讨这三个概念的区别及其在Java开发和运行环境中的作用...

    我们必须明白JDK,JRE和JVM之间的差异.mp4

    我们必须明白JDK,JRE和JVM之间的差异.mp4

    JDK JRE与JVM1

    Java 技术体系的核心组成部分包括 JDK (Java Development Kit),JRE (Java Runtime Environment) 和 JVM (Java Virtual Machine)。理解这三个概念对于Java开发者至关重要。 首先,JDK是Java开发工具包,它是Java...

    JDK、JRE、JVM是什么?

    JDK(java Development Kit):java 的开发和运行环境,包括java 的开发工具和 jre,在程序员的电脑上当然要安装JDK; JRE(Java Runtime Environment):它是Java运行环境,包括,java 运行的所需的类库+JVM(java ...

    大数据必学Java基础(九):JDK,JRE,JVM的区别

    本文主要讲解JDK、JRE和JVM之间的区别。 一、JDK、JRE、JVM的关系 1. JDK(Java Development Kit):Java开发工具包,是Java开发人员必备的软件,包含了编译器(javac)、JRE、调试器、文档生成工具、打包工具等。...

    【Java基础】JDK、JRE、JVM之间的关系

    3.JDK、JRE、JVM的区别 3.1 Java为什么能跨平台,实现一次编写,多处运行? 1.编译器、调试器 JAVA编译器(javac.exe) JAVA编译器的作用是将(.java文件)编译成字节码文件,是最基本的开发工具。编译时首先读入java...

    JDK,JRE,JVM区别与联系.pdf

    总的来说,JDK、JRE和JVM之间的关系可以总结为:JDK是开发Java程序的全套工具,包含JRE;JRE是运行Java程序所必需的环境,它包括JVM和Java核心类库;而JVM则是负责解释执行Java字节码的虚拟计算机。理解这三个概念...

    详解JDK,JRE,JVM.md

    详解JDK,JRE,JVM.md

    详解Java中的JDK、JRE、JVM

    Java开发中的JDK、JRE和JVM是三个至关重要的概念,它们构成了Java应用程序的运行基础。理解这三个术语以及它们之间的关系是每个Java开发者必备的知识。 JDK(Java Development Kit)是Java开发工具包,它是Java开发...

    【Java面试题】JDK、JRE与JVM的区别

    【Java面试题】JDK、JRE与JVM的区别

    jdk与jre的区别

    JDK(Java Development Kit)和 JRE(Java Runtime Environment)是 Java 语言的两个核心组件,它们之间存在着一定的关系和区别。下面我们将详细介绍 JDK 和 JRE 的概念、区别和关系。 JDK JDK 是 Java 语言的软件...

    一张图看懂JVM、JRE、JDK

    一张图看懂JVM、JRE、JDK

    jdk和jre的区别

    通过以上分析,我们可以清晰地认识到JDK与JRE之间的区别及其各自的作用。对于开发者而言,需要安装JDK来进行Java程序的开发和调试;而对于Java程序的最终用户,则只需安装JRE即可运行Java应用。此外,了解JDK和JRE的...

    JDK和JRE文件的区别

    在深入探讨JDK(Java Development Kit)与JRE(Java Runtime Environment)之间的区别之前,我们先来定义一下这两个概念。JDK是Java开发工具包,它包含了编译、运行和调试Java应用程序所需的所有工具;而JRE则是Java...

    Java中的数据类型及JDK, JRE, 和 JVM解释及关系.zip

    JDK、JRE和JVM之间的关系可以这样理解:JDK是开发Java程序的工具集,包含JRE;JRE是运行Java程序的环境,包括JVM和其他运行时所需的库;而JVM是JRE的核心部分,负责解释和执行Java字节码。在实际开发过程中,开发者...

    Java零基础 - JDK JRE JVM三者关系.md

    通过以上介绍,我们可以清晰地看到JDK、JRE和JVM之间的关系: 1. **JDK** 包含了JRE,并增加了开发工具,如编译器、调试器等,主要用于开发Java应用程序。 2. **JRE** 包含了JVM和核心类库,主要用于运行已编译的...

    jdk开发包,里面包含jre和jvm的详细资源

    在给定的压缩包中,我们有"jdk1.8.0_05",这是一个特定版本的JDK,发布于Java 8时代,具体是第5次更新。JDK 8是Java历史上一个非常重要的版本,引入了诸多新特性,极大地提升了开发效率和代码质量。 首先,JDK包含...

Global site tag (gtag.js) - Google Analytics