JDK和JRE有什么区别?

JDK和JRE有什么区别?
他们的angular色是什么?我应该什么时候使用其中一种?

JRE :Java运行时环境。 它基本上是运行Java程序的Java虚拟机。 它还包括用于Applet执行的浏览器插件。

JDK :这是用于Java的全function软件开发工具包,包括JRE ,以及用于创build和编译程序的编译器和工具(如JavaDoc和Java Debugger)。

通常,当您只关心在浏览器或计算机上运行Java程序时,您将只安装JRE 。 这是你所需要的。 另一方面,如果你打算做一些Java编程,你也将需要JDK

有时,即使您不打算在计算机上执行任何Java开发,您仍然需要安装JDK 。 例如,如果您正在使用JSP部署Web应用程序,则技术上 只是在应用程序服务器内部运行Java程序。 那你为什么还需要JDK ? 因为应用程序服务器会将JSP转换成Servlet并使用JDK来编译servlet。 我相信可能会有更多的例子。

巴勃罗是非常正确的。 这只是附加信息:

顾名思义,“ JRE ”就是一个环境 。 它基本上是一堆与Java相关的文件的目录,

  • / bin与可执行程序如java和(对于Windows) javaw ,它们本质上是Java虚拟机的程序;
  • / lib有大量的支持文件:一些jar文件,configuration文件,属性文件,字体,声音,图标…所有Java的“修剪”。 最重要的是rt.jar和其中可能包含“Java API”(即Java库代码)的几个兄弟。
  • 在某些地方,可能被安装程序.DLL到操作系统指定的某个目录,是一些.DLL (对于Windows)或.so (Unix / Linux),通常支持系统特有的本机二进制代码。

JDK也是一组目录。 它看起来很像JRE,但它包含一个带有完整JRE的目录(称为JRE ),它有许多开发工具,最重要的是它的bin目录中的Java编译器javac

在这里输入图像说明

JDK是JRE的超集,包含JRE中的所有内容,以及用于开发小应用程序和应用程序所需的编译器和debugging器等工具。 JRE提供库,Java虚拟机(JVM)和其他组件来运行用Java编程语言编写的小应用程序和应用程序。

俗话说:JDK是祖父JRE是父亲,JVM是他们的儿子。 [即JDK> JRE> JVM]

JDK = JRE +开发/debugging工具

JRE = JVM + Java包类(如util,math,lang,awt,swing等)+运行时库。

JVM =类加载器系统+运行时数据区+执行引擎。

换句话说,如果你是一个Java程序员,你将需要在你的系统中使用JDK,这个包也包含JRE和JVM,但是如果你是喜欢玩在线游戏的普通用户,那么你只需要JRE,这个包就不会有JDK在里面。

JVM:

Java虚拟机(JVM)是​​运行Java字节码的虚拟机。 JVM不理解Java错字,这就是为什么编译* .java文件来获取包含JVM可理解的字节码的* .class文件的原因。 它也是允许Java成为“便携式语言”(写入一次,在任何地方运行)的实体。 事实上,对于不同的系统(Windows,Linux,MacOS,请参阅维基百科列表),JVM有特定的实现。目标是使用相同的字节码,它们都会给出相同的结果。

JDK和JRE

为了解释JDK和JRE之间的区别,最好的方法是阅读Oracle文档并查看图表:

Java运行时环境(JRE)

Java运行时环境(JRE)提供库,Java虚拟机和其他组件来运行用Java编程语言编写的applet和应用程序。 另外,两个关键的部署技术是JRE的一部分:Java Plug-in,它使小程序可以在stream行的浏览器中运行; 以及通过networking部署独立应用程序的Java Web Start。 它也是Java 2 Platform,Enterprise Edition(J2EE)中用于企业软件开发和部署的技术的基础。 JRE不包含用于开发小应用程序和应用程序的工具和实用程序,例如编译器或debugging器。

Java开发工具包(JDK)

JDK是JRE的超集,包含JRE中的所有内容,以及用于开发小应用程序和应用程序所需的编译器和debugging器等工具。

请注意,Oracle不是唯一提供JDK的人。

JIT编译过程(礼貌:Oracle文档)

JDK> JRE> JVM

从官方的Java网站…

JRE(Java运行时环境):

  • 它是实际执行Java程序的Java虚拟机*的实现。
  • Java运行时环境是运行Java程序所需的插件。
  • JRE比JDK小,所以需要更less的磁盘空间。
  • JRE可以从https://www.java.com免费下载/支持;
  • 它包括JVM,Core库和其他组件,以运行用Java编写的应用程序和小程序。

JDK(Java开发工具包)

  • 这是一个可以用来开发基于Java的应用程序的软件包。
  • 开发Java应用程序需要Java Development Kit。
  • JDK需要更多的磁盘空间,因为它包含JRE以及各种开发工具。
  • JDK可以从https://www.oracle.com/technetwork/java/javase/downloads/免费下载/支持;
  • 它包括JRE,一组API类,Java编译器,Webstart以及编写Java小程序和应用程序所需的其他文件。

从debugging的angular度来看,有一点不同

要debugging到Java系统类(如String和ArrayList),需要使用“debugging信息”编译的JRE的特殊版本。 包含在JDK内的JRE提供了这个信息,但是常规的JRE没有。 常规JRE不包含此信息以确保更好的性能。

什么是debugging信息? 这里是从这个博客文章中快速解释:

现代编译器做了很好的工作,将高级代码转换成很好的缩进和嵌套的控制结构和任意types的variables,成为一大堆称为机器代码(或Java代码的字节码)的位,其唯一目的是在目标CPU(您的JVM的虚拟CPU)上尽可能快地运行。 Java代码被转换成几个机器代码指令。 变数被推到各处 – 进入堆栈,进入寄存器,或完全优化。 结构和对象甚至不存在于结果代码中 – 它们只是一个抽象,被转换为硬编码的偏移到内存缓冲区中。

那么当debugging器要求它在某些函数的入口处中断时,debugging器怎么知道要停止的地方呢? 当你问variables的价值时,它如何设法find要展示给你的东西? 答案是 – debugging信息。

debugging信息由编译器和机器代码一起生成。 它是可执行程序和原始源代码之间关系的表示。 该信息被编码成预定义的格式,并与机器码一起存储。 许多这样的格式是多年来为不同的平台和可执行文件而发明的。

JRE

JRE是Java Runtime Environment的缩写,用于提供运行时环境,它是JVM的实现,它在物理上是存在的。它包含一组JVM在运行时使用的库+其他文件。

JDK

JDK是Java开发工具包的首字母缩写,它在物理上存在。它包含JRE +开发工具。

链接: – http://www.javatpoint.com/difference-between-jdk-jre-and-jvm

通常,当您只关心在浏览器或计算机上运行Java程序时,您将只安装JRE。 这是你所需要的。 另一方面,如果你打算做一些Java编程,你也将需要JDK。

JVM,JRE和JDK依赖于平台,因为每个操作系统的configuration不​​同。 但是,Java是平台独立的。

Java虚拟机(JVM)是​​一个执行Java字节码的运行时系统。

JRE是运行Java应用程序所需的环境(标准库和JVM)。

JDK包含JRE plus命令行开发工具,如编译器和debugging器,这些工具对于开发applet和应用程序是必需或有用的。

以下是来自Oracle的简单回复http://docs.oracle.com/javase/7/docs/technotes/guides/

Java SE运行时环境(JRE)

JRE提供了运行用Java编程语言编写的applet和应用程序所需的库,Java虚拟机和其他组件。 此运行时环境可以与应用程序一起重新分发,使其独立。

Java SE开发工具包(JDK)

JDK包含JRE plus命令行开发工具,如编译器和debugging器,这些工具对于开发applet和应用程序是必需或有用的。

如果要运行Java程序,但不开发它们,请下载Java运行环境或JRE。 如果要开发它们,请下载Java Development Kit或JDK

JDK

我们称之为JDK是一个工具包,包括那些需要开发和运行java应用程序的东西。

JDK被用作构build应用程序,组件和小程序的开发环境。

JRE

它包含了以编译forms运行Java应用程序所需的一切。 你不需要任何图书馆和其他东西。 所有你需要的东西都被编译。

JRE不能用于开发,只能用于运行应用程序。

JVM(Java虚拟机)是一个抽象机器。 这是一个规范,它提供了可以执行java字节码的运行时环境。

JRE是Java Runtime Environment的缩写,它用于提供运行时环境。它是JVM的实现。它是物理上存在的。它包含JVM在运行时使用的一组库+其他文件

JDK是Java开发工具包的首字母缩写,它在物理上存在。它包含JRE +开发工具

jdk是编译代码并将java代码转换为字节代码所必需的,而jre是执行字节代码所必需的。

jvm,jre,jdk这些都是java语言的中坚力量。 每个组件单独工作。 Jdk和Jre物理存在,但Jvm是一个抽象的机器,这意味着它没有物理存在。

JVM是用于检查中间代码的JDK和JRE的子系统,称为Bytecode。 它首先通过JVM子系统类加载器加载由Java编译器(Javac)生成的具有.c扩展名的“类文件”,并根据用途分类存储位置(类区,堆栈,堆和pc寄存器)。 然后检查所有的字节码,以确保它是返回在Java和所有内存访问通过networking。 之后,解释器开始工作,解释器通过JRE(Java Runtime Environment)检查整个程序行的线程,最终将结果显示在控制台,浏览器和应用程序中。

JRE也是JDK的一个子系统,提供诸如JVM,类,像.jar文件之类的可执行文件等运行时设施。

JDK是 Java开发工具包,它包含用于编程的所有必要组件,如类,方法,swing,AWT,包,java(解释器),javac(编译器),appletviewer(applet应用程序查看器)等等。该文件在开发独立或基于Web的应用程序时非常有用。

JDK包含JRE plus命令行开发工具,如开发applet和应用程序所必需或有用的编译器和debugging器。

JRE基本上是运行Java程序的Java虚拟机。 它还包括用于Applet执行的浏览器插件。

JDK是一个抽象机器。 这是一个规范,它提供了可以执行java字节码的运行时环境。

所以,基本上JVM <JRE <JDK根据@Jaimin Patel说。

简单说:

JVM是Java代码在其上执行的虚拟机

JRE是运行Java应用程序所需的环境(标准库和JVM)

JDK是带有开发工具和文档的JRE

JDK和JRE的区别在于JDK是用于java的软件开发工具包,而JRE则是运行程序的地方。

假设,如果你是一个开发人员,那么你的angular色是开发程序以及执行程序。 所以您必须具有由JDK提供的开发和执行环境。

假设,如果你是一个客户,那么你不必担心开发。只需要一个运行程序的环境,并获得结果,这是由JRE提供的。

JRE执行应用程序,但JVM逐行读取指令,所以它是解释器。

JDK = JRE +开发工具

JRE = JVM +库类

对这些术语(JVM,JDK,JRE)的清晰理解对于掌握它们的用法和差异至关重要。

JVM Java虚拟机(JVM)是​​执行Java字节码的运行时系统。 JVM就像一个虚拟的计算机,可以执行一组编译指令和操作内存位置。 当Java编译器编译源代码时,它会在.class文件中生成一组高度优化的称为字节码的指令。 JVM解释这些字节码指令,并将它们转换为机器特定的代码执行。

JDK Java开发工具包(JDK)是一个软件开发环境,可用于开发和执行Java应用程序。 它包括JRE和一组编程工具,如Java编译器,解释器,appletviewer和文档查看器。 JDK是通过Java SE,Java EE或Java ME平台实现的。

JRE Java运行时环境(JRE)是JDK的一部分,包括JVM,核心类和支持应用程序开发的多个库。 虽然JRE作为JDK的一部分提供,但您也可以单独下载和使用它。

对于完整的理解和细节: Jdk Jre Jvm和区别

如果你是一个Java程序员,你将需要在你的系统中使用JDK ,这个包也包含JRE和JVM,但是如果你是喜欢玩在线游戏的普通用户 ,那么你只需要JRE ,这个包就不会有JDK。 。

JVM

JVM(Java虚拟机)是一个抽象机器。 这是一个规范,它提供了可以执行java字节码的运行时环境。

JVM可用于许多硬件和软件平台。 JVM,JRE和JDK依赖于平台,因为每个操作系统的configuration不​​同。 但是,Java是平台独立的。

JRE

它包含了以编译forms运行Java应用程序所需的一切。 你不需要任何图书馆和其他东西。 所有你需要的东西都被编译。

JRE不能用于开发,只能用于运行应用程序。

Java SE开发工具包(JDK)

JDK包含JRE plus命令行开发工具,如编译器和debugging器,这些工具对于开发applet和应用程序是必需或有用的。

(来源: GeeksForGeeks Q&A , Java平台概述 )

JRE

JRE是Java Runtime Environment的缩写,用于提供运行环境,是JVM的实现。 它在物理上存在。 它包含JVM在运行时使用的一组库+其他文件。

JVM的实施也由Sun Micro Systems以外的其他公司积极发布。

在这里输入图像说明

JDK

JDK是Java开发工具包的首字母缩写,它在物理上存在。它包含JRE +开发工具。

在这里输入图像说明