首页 > 试题广场 > JDK和JRE的区别是什么?
[问答题]

JRE: Java Runtime Environment 
JDK:Java Development Kit
JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。
JDK顾名思义是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。
如果你需要运行java程序,只需安装JRE就可以了。如果你需要编写java程序,需要安装JDK。
JRE根据不同操作系统(如:windows,linux等)和不同JRE提供商(IBM,ORACLE等)有很多版本 
再说说java的跨平台吧:
  java源程序先经过javac编译器编译成二进制的.class字节码文件(java的跨平台指的就是.class字节码文件的跨平台,.class字节码文件是与平台无关的),.class文件再运行在jvm上,java解释器(jvm的一部分)会将其解释成对应平台的机器码执行,所以java所谓的跨平台就是在不同平台上安装了不同的jvm,而在不同平台上生成的.class文件都是一样的,而.class文件再由对应平台的jvm解释成对应平台的机器码执行

最后解释下机器码和字节码的区别:
 一,机器码,完全依附硬件而存在~并且不同硬件由于内嵌指令集不同,即使相同的0 1代码
意思也可能是不同的~换句话说,根本不存在跨平台性~比如~不同型号的CPU,你给他个指令10001101,他们可能会解析为不同的结果~
二,我们知道JAVA是跨平台的,为什么呢?因为他有一个jvm,不论那种硬件,只要你装有jvm,那么他就认识这个JAVA字节码~~~~至于底层的机器码,咱不用管,有jvm搞定,他会把字节码再翻译成所在机器认识的机器码~~~
编辑于 2017-02-15 22:23:11 回复(12)

发表于 2018-01-09 09:15:30 回复(1)
补充一下:对jsp的理解
      jsp文件在编译的时候是先从jsp-->java-->class文件的,这个过程是由Tomcat(6.0以上)中的Jasper实现的,之所以强调版本是因为tomcat5.5及以下版本主要是依赖JDK去编译JSP文件生成class的,但Tomcat6.0使用了Eclipse的JDT技术,因此不再依赖JDK运行。也就是说Tomcat6以上只需要jre就可以运行web项目。
ps:JDT: java development tooling,是Eclipse提供的一组API。
发表于 2016-02-27 10:42:56 回复(1)
一图胜千语

发表于 2017-04-03 16:40:34 回复(1)
JDK(java 开发工具集)包含了JRE,编译器等;JRE(java运行环境)包含JVM和需要运行的程序。只有JRE只能进行程序编译,不能进行java程序的开发。安装JDK才能正常进行java程序的开发,编译,运行。
发表于 2016-03-16 21:09:45 回复(0)
JRE是Java运行环境,只执行编译产生的Java字节码文件所需的Java虚拟机;JDK是Java开发套件,不仅包含JRE,还包含编译器、其他调式工具,使得开发者能调试、编译、开发自己的Java程序。
发表于 2016-09-12 09:12:02 回复(0)
JDK就是Java Development Kit
JREJava Runtime Enviroment
顾名思义:JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序
JRE是指Java的运行环境,是面向Java程序的使用者,而不是开发者。JDK包含JRE
编辑于 2018-01-30 21:12:57 回复(0)

jre是java运行时环境,jdk是java开发工具包,jdk包含了jre

发表于 2019-03-26 12:09:17 回复(0)
Java运行时环境(JRE),包含了java虚拟机,java基础类库和支持文件。 Java开发工具包(JDK),是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。JDK包含了JRE,编译器javac,java调试器和其他工具。 如果你需要运行java程序,只需安装JRE就可以了。如果你需要编写java程序,需要安装JDK。
发表于 2019-01-13 18:44:45 回复(0)
JDK包含JRE
发表于 2018-09-12 14:30:55 回复(0)
可以把Java程序设计语言、Java虚拟机、Java API类库这三部分统称为JDK(Java Development Kit)。可以把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(Java Runtime Environment),JRE是支持Java程序运行的标准环境。
发表于 2018-05-25 19:33:59 回复(0)
jre(Java运行环境)包括jvm,Java核心类库(lang,util,io,sql,text,sql,awt Java.开头的是核心类库,javax开头的是官方拓展包,com或者org开头的是组织或机构的拓展包 ),不包含Java开发工具,是Java程序用户专用。 jdk(Java开发工具包)包括jre和Java开发工具(例如Javac 编译器,Javadoc 生成开发文档,jdb Java调试工具【断点等】),是开发人员专用。
编辑于 2018-04-17 09:58:12 回复(0)
JDK是JAVA的工具包,它里面本身就包含有JRE,而JRE是JAVA的运行环境,可以说JRE是JDK的子集
发表于 2018-01-14 16:04:29 回复(0)
JRE 面向程序 JDk 面向程序猿 前者是锅和菜米油盐,后者是各种刀具铲等工具
发表于 2018-01-03 12:57:17 回复(1)
jre包括在jdk中。要开发java程序,安装jdk即可。
发表于 2017-12-02 23:59:42 回复(0)
jre是JAVA程序的运行环境,包含jvm,核心类库,和其他支持工具(JAVAc等)。用户运行JAVA程序只需要安装jre就好。 jdk是JAVA的开发工具,包含jre,以及编译器,调试器和其他工具,可以运行,调试JAVA程序。程序员如果要开发JAVA程序就需要安装jdk
编辑于 2017-11-21 20:40:58 回复(0)
JDK>JRE>JVM
发表于 2017-11-12 17:42:43 回复(0)
发表于 2017-10-18 23:41:16 回复(0)
jdk包含了jre。jdk除了能运行.class文件之外,还拥有许多开发工具,可以编译及调试.java源文件。
发表于 2017-10-17 16:16:49 回复(0)
jre是运行环境,jdk是Java软件开发包
编辑于 2017-10-14 13:34:14 回复(0)