A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 风一样的少年 中级黑马   /  2015-6-26 16:33  /  490 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

JRE(Java Runtime Enviroment)是Java的运行环境。面向Java程序的使用者,而不是开发者。如果你仅下载并安装了JRE,那么你的系统只能运行Java程序。JRE是运行Java程序所必须环境的集合,包含JVM标准实现及Java核心类库。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。

JDK(Java Development Kit)又称J2SDK(Java2 Software Development Kit),是Java开发工具包,它提供了Java的开发环境(提供了编译器javac等工具,用于将java文件编译为class文件)和运行环境(提供了JVM和Runtime辅助包,用于解析class文件使其得到运行)。如果你下载并安装了JDK,那么你不仅可以开发Java程序,也同时拥有了运行Java程序的平台。JDK是整个Java的核心,包括了Java运行环境(JRE),一堆Java工具tools.jar和Java标准类库(rt.jar)。

JRE主要包含:java类库的class文件(都在lib目录下打包成了jar)和虚拟机(jvm.dll);JDK主要包含:java类库的class文件(都在lib目录下打包成了jar)并自带一个JRE。那么为什么JDK要自带一个JRE呢?而且jdk/jre/bin下的client和server两个文件夹下都包含jvm.dll(说明JDK自带的JRE有两个虚拟机)。

记得在环境变量path中设置jdk/bin路径麽?老师会告诉大家不设置的话javac和java是用不了的。确实jdk/bin目录下包含了所有的命令。可是有没有人想过我们用的java命令并不是jdk/bin目录下的而是jre/bin目录下的呢?不信可以做一个实验,大家可以把jdk/bin目录下的java.exe剪切到别的地方再运行java程序,发现了什么?一切OK!(JRE中没有javac命令,原因很简单,它不是开发环境)那么有人会问了?我明明没有设置jre/bin目录到环境变量中啊?试想一下如果java为了提供给大多数人使用,他们是不需要jdk做开发的,只需要jre能让java程序跑起来就可以了,那么每个客户还需要手动去设置环境变量多麻烦啊?所以安装jre的时候安装程序自动帮你把jre的java.exe添加到了系统变量中,验证的方法很简单,去Windows/system32下面去看看吧,发现了什么?有一个java.exe。


11 个回复

倒序浏览
温故而知新,
回复 使用道具 举报
学而时习之
回复 使用道具 举报
学习。。。
回复 使用道具 举报
好,学习一下
回复 使用道具 举报
复习了一遍
回复 使用道具 举报
今天面试的就有这个问题,我硬是没有说出来:shutup:
回复 使用道具 举报
jdk包含jre,jdk是Java开发环境,jre包含Java虚拟机和核心类库
回复 使用道具 举报
给自己赞下哈
回复 使用道具 举报
有艺术的刺客 来自手机 中级黑马 2015-6-27 13:27:19
10#
d,r,v JDK>JRE>JVM。它们的从属关系JDK最大吧。
回复 使用道具 举报
不错不错,算是温习了
回复 使用道具 举报
jdk是开发,jre是运行,安装了JDK、
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马