Pab*_*ruz 1138
该JRE是Java运行时环境.它是运行已编译Java程序所需的所有内容的包,包括Java虚拟机(JVM),Java类库,java命令和其他基础结构.但是,它不能用于创建新程序.
在JDK是Java开发工具包,Java的功能全面的SDK.它拥有JRE所拥有的一切,还有编译器(javac)和工具(如javadoc和jdb).它能够创建和编译程序.
通常,如果您只关心在计算机上运行Java程序,则只能安装JRE.这就是你所需要的一切.另一方面,如果您计划进行一些Java编程,则需要安装JDK.
有时,即使您不打算在计算机上进行任何Java开发,仍然需要安装JDK.例如,如果要使用JSP部署Web应用程序,那么从技术上讲,您只是在应用程序服务器中运行Java程序.那你为什么需要JDK呢?因为应用程序服务器会将JSP转换为Java servlet,并且需要使用JDK来编译servlet.我相信还有更多的例子.
Car*_*icz 131
上面的答案(由巴勃罗)是非常正确的.这只是其他信息.
该JRE是,顾名思义,一个环境.它基本上是一堆带有Java相关文件的目录,即:
bin/包含Java的可执行程序.最重要的是java(对于Windows,javaw也是),它启动了JVM.这里还有一些其他实用程序,例如keytool和policytool.conf/ 拥有用户可编辑的配置文件供Java专家使用.lib/有大量的支持文件:一些.jars,配置文件,属性文件,字体,翻译,证书等 - 所有Java的"修剪".最重要的是modules,包含.classJava标准库文件的文件..dll(Windows)或.dylib(macOS)或.so(Linux)文件,这些文件位于bin/或lib/支持系统特定的本机二进制代码.在JDK也是一组目录.它是JRE的超集,有一些补充:
bin/随着开发工具的扩大.其中最重要的是javac; 其他包括jar,javadoc和jshell.jmods/已添加,其中包含标准库的JMOD文件.这些文件允许使用标准库jlink.小智 123

JDK是JRE的超集,包含JRE中的所有内容,以及开发applet和应用程序所需的编译器和调试器等工具.JRE提供库,Java虚拟机(JVM)和其他组件来运行用Java编程语言编写的applet和应用程序.
Jai*_*tel 96
通俗地说:JDK是祖父JRE是父亲,JVM是他们的儿子. [即JDK> JRE> JVM]
JDK = JRE +开发/调试工具
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成为"可移植语言"的实体(只需编写一次,随处运行).实际上,JVM的特定实现适用于不同的系统(Windows,Linux,MacOS,请参阅维基百科列表..),目的是使用相同的字节码,它们都会给出相同的结果.
JDK和JRE
要解释JDK和JRE之间的区别,最好阅读Oracle文档并参考图表:
Java运行时环境(JRE)
Java运行时环境(JRE)提供库,Java虚拟机和其他组件来运行用Java编程语言编写的applet和应用程序.此外,两个关键的部署技术是JRE的一部分:Java Plug-in,它使applet能够在流行的浏览器中运行; 和Java Web Start,它通过网络部署独立应用程序.它也是用于企业软件开发和部署的Java 2平台企业版(J2EE)中的技术的基础.JRE不包含用于开发applet和应用程序的工具和实用程序,如编译器或调试器.
Java开发工具包(JDK)
JDK是JRE的超集,包含JRE中的所有内容,以及开发applet和应用程序所需的编译器和调试器等工具.
请注意,Oracle不是唯一提供JDK的人.
Wan*_*fee 25
来自官方java网站...
JRE(Java运行时环境):
JDK(Java开发工具包)
小智 23
与调试角度的一个区别:
要调试Java系统类(如String和ArrayList),需要使用"调试信息"编译的特殊版本的JRE.JDK中包含的JRE提供了此信息,但常规JRE不提供此信息.常规JRE不包含此信息以确保更好的性能.
什么是调试信息?以下是此博客文章的快速解释:
现代编译器可以很好地将高级代码转换为一个很好的缩进和嵌套控制结构以及任意类型的变量,这些变量称为机器代码(或Java中的字节码),其唯一目的是在目标CPU(JVM的虚拟CPU)上尽可能快地运行.Java代码被转换为多个机器代码指令.变量遍布整个地方 - 进入堆栈,进入寄存器或完全优化掉.结构和对象甚至不存在于生成的代码中 - 它们只是一种抽象,可以转换为硬编码的偏移到内存缓冲区.
那么当你要求它在某个函数的入口处中断时,调试器如何知道停止的位置?当您向它询问变量的值时,它如何设法找到显示给您的内容?答案是 - 调试信息.
调试信息由编译器与机器代码一起生成.它表示可执行程序和原始源代码之间的关系.该信息被编码为预定义的格式并与机器代码一起存储.多年来,针对不同平台和可执行文件发明了许多这样的格式.
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.
小智 8
JVM,JRE和JDK是平台相关的,因为每个操作系统的配置不同.但是,Java与平台无关.
Java虚拟机(JVM)是一个执行Java字节码的运行时系统.
JRE是运行Java应用程序所需的环境(标准库和JVM).
JDK包括JRE以及编译器和调试器等命令行开发工具,这些工具对于开发applet和应用程序是必要或有用的.
这是一个直接来自Oracle的简单响应 http://docs.oracle.com/javase/7/docs/technotes/guides/
Java SE运行时环境(JRE)
JRE提供了运行以Java编程语言编写的applet和应用程序所必需的库,Java虚拟机和其他组件.可以使用应用程序重新分发此运行时环境,使其独立.
Java SE开发工具包(JDK)
JDK包括JRE以及编译器和调试器等命令行开发工具,这些工具对于开发applet和应用程序是必要或有用的.
如果要运行Java程序但不要开发它们,请下载Java运行时环境或JRE.如果要开发它们,请下载Java Development Kit或JDK
我们称之为JDK是一个工具包,其中包括开发和运行java应用程序所需的内容.
JDK作为构建应用程序,组件和applet的开发环境提供.
它包含以编译形式运行Java应用程序所需的一切.你不需要任何库和其他东西.你需要的所有东西都被编译好了
JRE不能用于开发,仅用于运行应用程序.
小智 7
JVM,JRE,JDK - 这些都是Java语言的支柱.每个组件分开工作.Jdk和Jre在物理上存在,但Jvm是一个抽象机器,意味着它没有实际存在.
JVM是JDK和JRE的子系统,用于检查中间代码是否为Bytecode.它首先通过JVM子系统类加载器加载由Java编译器(Javac)生成的.c扩展名的"类文件",并根据用途分类内存位置(类区域,堆栈,堆和pc寄存器).然后检查所有字节码以确保它在java中返回并且网络具有所有内存可访问性访问权限.在解释器工作开始之后,解释器通过运行时设备的JRE(Java运行时环境)检查整个程序行方向,最后在控制台,浏览器和应用程序中显示结果.
JRE也是JDK的子系统,它提供JVM,类,可执行文件(如.jar文件等)等运行时工具.
JDK代表Java开发工具包它包含所有必要的组件,用于编程,如类,方法,swing,AWT,包,java(解释器),javac(编译器),appletviewer(applet应用程序查看器)等.所以最后的结论是它内容每一个在开发应用程序时有用的文件可以单独使用,也可以基于Web使用.
JVM(Java虚拟机)是一个抽象机器.它是一个规范,提供可以执行java字节码的运行时环境.
JRE是Java Runtime Environment的首字母缩写.它用于提供运行时环境.它是JVM的实现.它实际上是存在的.它包含JVM在运行时使用的一组库+其他文件
JDK是Java Development Kit的首字母缩写.它实际上是存在的.它包含JRE +开发工具
清楚地理解这些术语(JVM,JDK,JRE)对于掌握它们的用法和差异至关重要.
JVM Java虚拟机(JVM)是一个执行Java字节码的运行时系统.JVM就像一台虚拟计算机,可以执行一组编译指令并操作内存位置.当Java编译器编译源代码时,它会在.class文件中生成一组高度优化的指令,称为字节码.JVM解释这些字节码指令并将它们转换为特定于机器的代码以供执行.
JDK Java Development Kit(JDK)是一个软件开发环境,可用于开发和执行Java应用程序.它包括JRE和一组编程工具,例如Java编译器,解释器,appletviewer和文档查看器.JDK通过Java SE,Java EE或Java ME平台实现.
JRE Java运行时环境(JRE)是JDK的一部分,它包括JVM,核心类和几个支持应用程序开发的库.虽然JRE是JDK的一部分,但您也可以单独下载和使用它.
为了完全理解,您可以看到我的博客:Jdk Jre Jvm和差异
小智 6
如果你是一个Java程序员,你需要在你的系统中使用JDK,这个软件包也包括JRE和JVM,但如果你是喜欢玩在线游戏的普通用户那么你只需要JRE而且这个软件包里面不会有JDK .
JVM
JVM(Java虚拟机)是一个抽象机器.它是一个规范,提供可以执行java字节码的运行时环境.
JVM可用于许多硬件和软件平台.JVM,JRE和JDK是平台相关的,因为每个操作系统的配置不同.但是,Java与平台无关.
JRE
它包含以编译形式运行Java应用程序所需的一切.你不需要任何库和其他东西.你需要的所有东西都被编译好了
JRE不能用于开发,仅用于运行应用程序.
Java SE开发工具包(JDK)
JDK包括JRE以及编译器和调试器等命令行开发工具,这些工具对于开发applet和应用程序是必要或有用的.
(来源:GeeksForGeeks问答,Java平台概述)
小智 5
JDK包括JRE plus命令行开发工具,例如编译器和调试器,它们对于开发applet和应用程序是必要或有用的.
JRE基本上是运行Java程序的Java虚拟机.它还包括用于Applet执行的浏览器插件.
JDK是一个抽象机器.它是一个规范,提供可以执行java字节码的运行时环境.
所以,基本上JVM <JRE <JDK如@Jaimin Patel所说.