大家肯定在安装JDK的时候会有选择是否安装单独的jre,一般都会一起安装,我也建议大家这样做。
由于这样更能帮助大家弄清楚它们的差别:

Jre   是java   runtime   environment,   是java程序的执行环境。既然是执行,当然要包括jvm,也就是大家熟悉的虚拟机啦,   还有全部java类库的class文件,都在lib文件夹下打包成了jar。大家能够自己验证。至于在windows上的虚拟机是哪个文件呢?   学过MFC的都知道什么是dll文件吧,那么大家看看jre/bin/client里面是不是有一个jvm.dll呢?那就是虚拟机。

Jdk   是java   development   kit,是java的开发工具包,里面包括了各种类库和工具。当然也包括了另外一个Jre.     那么为什么要包括另外一个Jre呢?并且jdk/jre/bin同一时候有client和server两个目录下都包括一个jvm.dll。   说明是有两个虚拟机的。这一点不知道大家是否注意到了呢?

相信大家都知道jdk的bin下有各种java程序须要用到的命令,与jre的bin文件夹最明显的差别就是jdk下才有javac,这一点非常好理解,由于 jre仅仅是一个执行环境而已。与开发无关,正由于如此,具备开发功能的jdk自己的jre下才会同一时候有client性质的jvm和server性质的 jvm,   而仅仅作为执行环境的jre下仅仅须要client性质的jvm.dll就够了。

记得在环境变量path中设置jdk/bin路径麽?这应该是大家学习Java的第一步吧,   老师会告诉大家不设置的话javac和java是用不了的。确实jdk/bin文件夹下包括了全部的命令。但是有没有人想过我们用的java命令并非 jdk/bin文件夹下的而是jre/bin文件夹下的呢?不信能够做一个实验,大家能够把jdk/bin文件夹下的java.exe剪切到别的地方再执行 java程序,发现了什么?一切OK!

那么有人会问了?我明明没有设置jre/bin文件夹到环境变量中啊?

试想一下假设java为了提供给大多数人使用,他们是不须要jdk做开发的,仅仅须要jre能让java程序跑起来就能够了,那么每一个客户还须要手动去环境变量设置多麻烦啊?所以安装jre的时候安装程序自己主动帮你把jre的java.exe加入到了系统变量中,验证的方法非常easy,大家看到了系统环境变量的 path最前面有“%SystemRoot%/system32;%SystemRoot%;”这种配置,那么再去Windows/system32以下去看看吧,发现了什么?有一个java.exe。

假设强行可以把jdk/bin挪到system32变量前面,当然也可以迫使使用jdk/jre里面的java,只是除非有必要,我不建议大家这么做。使用单独的jre跑java程序也算是客户环境下的一种測试。

这下大家应该更清楚jdk和jre内部的一些联系和差别了吧?

PS:   事实上还有满多感想能够总结的,一次写多了怕大家扔砖头砸死我,怪我太罗唆。大家应该更加踏实更加务实的去做一些研究并互相分享心得,慷慨向和太前沿的技术讨论是必要的但最好不要太多,毕竟自己基础都还没打好,什么都讲最新版本号事实上是进步的一大障碍!

jdk和jre是什么?都有什么用?的更多相关文章

  1. jdk和jre是什么?都有什么用?(转帖)

    jdk和jre是什么?都有什么用?(转帖) 文章分类:Java编程 大家肯定在安装JDK的时候会有选择是否安装单独的jre,一般都会一起安装,我也建议大家这样做.由于这样更能帮助大家弄清楚它们的差别: ...

  2. JDK、JRE 和 JVM 的区别

    JDK JDK 是 Java Development Kit 的缩写,JDK 是 Java 语言的软件开发工具包( SDK ).它提供了Java 开发.编译.运行需要的文件和环境. 如果你是 Java ...

  3. jdk与jre与jdk都是干什么的有什么区别和jvm详解:

    1.0,jdk与jre和jvm的区别: JDK(Java Development Kit):指的是Java开发工具集.JDK是整个Java的核心,包括了Java基础类库.Java运行环境(JRE)和J ...

  4. J2EE,J2SE,J2ME,JDK,SDK,JRE,JVM区别

    转自:http://www.metsky.com/archives/547.html 一.J2EE.J2SE.J2ME区别 J2EE——全称Java 2 Enterprise Edition,是Jav ...

  5. Java2_java入门时的一些基本概念的理解(j2ee,j2se,j2me,jdk,sdk,jre,jvm,跨平台)

    什么是SDK呢? Software Develop Kit的简称,顾名思义就是软件开发包.软件开发商实现底层模块,并对其进行类库封装,配置成高级别的开发环境,为程序员上层的程序开发提供支持.譬如Goo ...

  6. XAMPP里tomcat启动报错:Make sure you have Java JDK or JRE installed and the required ports are free

    以前用XAMPP的时候就是自然而然装好了就可以用,最近重装了新系统,打算在Windows 10里面配置Apache tomcat.PHP.MySQL的开发环境,迟迟试验不成功,于是直接用了XAMPP, ...

  7. jdk 与jre的区别

    jdk就是java的开发工具集,顾名思义就是你做开发用的,其中包括javac,也就是java compiler等. jre(java runtime environment),就是java程序的运行环 ...

  8. jdk、jre、jvm的关系

    JDK里面的工具也是用JAVA编写的,它们本身运行的时候也需要一套JRE,如C:\Program Files\Java\jdk1.5.x\目录下的JRE.而C:\Program Files\Java\ ...

  9. jdk与jre的区别

    很多程序员已经干了一段时间java了依然不明白jdk与jre的区别.JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境. ...

随机推荐

  1. DLNA_百度百科

    DLNA_百度百科 DLNA

  2. exe解析

    IMAGE_DOS_HEADER      size   0x40 e_lfanew                           0xe0 当中有0xA0的间隔数据. IMAGE_NT_HEA ...

  3. openssl之BIO系列之5---CallBack函数及其控制

    CallBack函数及其控制     ---依据openssl doc/crypto/bio/bio_set_callback.pod翻译和自己的理解写成          (作者:DragonKin ...

  4. mysql 高可用方案MHA介绍

    概述 MHA是一位日本MySQL大牛用Perl写的一套MySQL故障切换方案,来保证数据库系统的高可用.在宕机的时间内(通常10—30秒内),完成故障切换,部署MHA,可避免主从一致性问题,节约购买新 ...

  5. ios 上拉载入下拉刷新Dome

    为练手写了一个小的上拉载入很多其它下拉刷新的小的Dome . 没有太多的技术含量,仅仅是作为新手的启示用.是上一篇下拉载入的扩展.先看一下那个再看这个就easy非常多. Dome下载:http://d ...

  6. 文件下载:"Content-disposition","attachment; filename=中文名>>>解决方案

    文件下载时常会出现如下问题: response.setHeader("Content-disposition","attachment; filename="+ ...

  7. 找工作笔试面试那些事儿(8)---常问的CC++基础题

    这一部分是C/C++程序员在面试的时候会被问到的一些题目的汇总.来源于基本笔试面试书籍,可能有一部分题比较老,但是这也算是基础中的基础,就归纳归纳放上来了.大牛们看到一笑而过就好,普通人看看要是能补上 ...

  8. TCP/UDP简介

    TCP/UDP简介 Socket小白篇-附加TCP/UDP简介 Socket 网络通信的要素 TCP和UDP Socket的通信流程图 1.Socket 什么是Socket Socket:又称作是套接 ...

  9. zzu--2014年11月16日月潭赛 B称号

    1229: Rational Resistance Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 8  Solved: 4 [id=1229" ...

  10. 西南民大oj(矩阵快速幂)

    我的名字不可能那么难记 时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte总提交 : 16            测试通过 : ...