有些东西,你懂不懂其实并不太影响你干活,但有些人就是有疑惑就非得弄懂,不然浑身难受,我大概就是这种德性的。昨天安装javaSE的时候,看到jdk中有个jre文件夹,而根目录下又有个jre文件夹,非常困惑,难道不一样吗?带着问题,上网查了一会儿,果然,还是有点明灯的人~

  首先看看JDK和JRE分别在开发中的作用吧。

JRE

  是Java Runtime Environment,是java程序的运行环境。既然是运行,当然要包含JVM(Java Virtual Machine),也就是虚拟机,还需要包含java类库的class文件,在jre/lib目录下打包成了jar。

JDK

  是Java Development Kit,是java的开发工具包,里面包含了各种类库和工具,当然也包括了另外一个jre。

  那么为什么还包含了一个jre文件呢?

  可以看到,其中一个jre文件在jdk内部,一个jre文件在jdk外部,这就是所谓的专用JRE和公用JRE

专用JRE

  安装JDK时,会安装一个专用JRE,并且你可以选择安装一个公共副本,需要专用JRE才能运行JDK中包含的工具。专用JRE没有注册表设置,并且完全包含在仅对JDK已知的Java目录中(如D\java\jdk\jre)。

公共JRE

  公共JRE可由其它Java应用程序使用,并且包含在JDK外部(如D\Java\jre)。公共JRE会注册到Windows注册表(位于HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft)中。公共JRE可以使用“添加/删除程序”进行删除,并且还会注册到浏览器。

  我们知道运行JAVA程序的时候,只需要JRE就能够运行了,而并不需要使用JDK中的开发工具(如javac java等等),公共JRE就是为运行加载到计算机中的JAVA程序来提供运行环境的,也就是说,如果我们并不需要开发JAVA程序,而仅仅是运行他人已有的JAVA程序时,仅仅安装这个在 JDK外部的JRE文件就足够了。但是如果我们需要开发JAVA程序,那么就必须安装JDK,JDK中包含专用JRE和开发工具,这些开发工具需要专用JRE才能够使用,也就说专用JRE是为我们开发JAVA程序准备的。

  要注意,这两个JRE文件中的内容是有区别的,所以不能够简单的进行替换。

  同时注意平时所说的“java自动更新”根本不是所安装的JDK版本的更新,它指的是这个公用JRE运行时环境的更新,这个更新为的是让你的计算机能够使用最新版本正常的运行一些网站或则Web应用等等当中的java程序,如果不及时更新的话,可能我们在浏览一些网页或者web应用时,不能够正常的交互和显示,这与JDK没有任何的关系,很多人认为“java的自动更新”指的是JDK版本的自动更新,这就大错特错了。所以如果我们要想升级JDK的版本,只能够从官网中下载最新版本的JDK,重新安装。

安装jdk的时候为什么会有两个jre文件的更多相关文章

  1. eclipse中的两种Jre 及 Jre与Jdk的区别

    分类: ——————————区分eclipse中的两种Jre———————- (Eclipse也是一个普通的Java程序,因此必须有一个JRE做为运行环境.如果你的机器上没有安装任何JRE(或者JDK ...

  2. window、linux安装jdk,excel 导入oracle,WebService,window 端口查看,svn服务安装,oracle用户解锁

    内存泄露分析插件http://download.eclipse.org/mat/1.3/update-site/birt插件http://download.eclipse.org//birt/upda ...

  3. liunx centOS6.5安装jdk教程

    第一步:mkdir /usr/java/ --在/usr目录下新建一个java目录 第二步:cp jdk-7u25-linux-x64.rpm /usr/java/ --将JDK文件复制到/usr/j ...

  4. linux系统中安装JDK

    安装之前的准备工作 查看系统中之前安装好的JDK java –version rpm -qa | grep java 卸载JDK (以java-1.7.0-openjdk-1.7.0.45-2.4.3 ...

  5. Ubuntu 安装 JDK 7 / JDK8 的两种方式

    ubuntu 安装jdk 的两种方式: 1:通过ppa(源) 方式安装. 2:通过官网下载安装包安装. 这里推荐第1种,因为可以通过 apt-get upgrade 方式方便获得jdk的升级 使用pp ...

  6. 为何在JDK安装路径下存在两个JRE?

    "两个jre"和"三个lib"的功能简单扼要的解释 安装JDK后,Java目录下有jdk和jre两个文件夹,但jdk下还有一个jre文件夹,而且这个jre比前面 ...

  7. JDK安装目录分析-两个jre和三个lib

    安装JDK后,Java目录下有jdk和jre两个目录,但jdk下还有一个jre目录,而且这个jre比前面那个jre在bin目录下少了个server文件夹(Server端的Java虚拟机)!前一个jre ...

  8. jdk安装完为什么会有两个JRE?

    jdk安装完为什么会有两个JRE? 之所以需要两套 jre ,是因为可以分担工作:当用户只需要执行 java 的程序时,那么 c:\program files\java\jre 下的 jre 就 ok ...

  9. Linux安装jdk(两种方式)

    最近在研究大数据方面的东西,业务场景是从设备采集数据经过处理然后存放DB. 建设上面的环境第一步肯定是安装jdk,所以和大家一起学一下基本知识centos7.5安装jdk1.8. 安装jdk有两种方法 ...

随机推荐

  1. NHibernate使用简单示例

    NHibernate使用小示例 1.新建Model类库项目. 使用代码生成器生成Model类. 此处以简单的UserInfo表作为示例. 注意字段前必须以 virtual 修饰. namespace ...

  2. 【洛谷P1858】多人背包

    题目大意:求解 0-1 背包前 K 优解的和. 题解:首先,可知对于状态 \(dp[j]\) 来说,能够转移到该状态的只有 \(dp[j],dp[j-w[i]]\).对于 K 优解来说,只需对状态额外 ...

  3. 出现“java.lang.AssertionError: SAM dictionaries are not the same”报错

    运行一下程序时出现“java.lang.AssertionError: SAM dictionaries are not the same”报错 java -jar picard.jar SortVc ...

  4. Arcgis api 离线部署

    Arcgis api 离线部署 修改 文件一(init.js)位置:arcgis_js_v317_api\arcgis_js_api\library\3.17\3.17\init.js 将[HOSTN ...

  5. JavaSE学习总结(十六)—— 泛型与泛型应用

    一.泛型概要 泛型(Generic)的本质是类型参数化,通俗的说就是用一个占位符来表示类型,这个类型可以是String,Integer等不确定的类型,表明可接受的类型. 泛型是Java中一个非常重要的 ...

  6. 一张图看懂JavaScript中数组的迭代方法:forEach、map、filter、reduce、every、some

    好吧,竟然不能单发一张图,不够200字啊不够200字! 在<JavaScript高级程序设计>中,分门别类介绍了非常多数组方法,其中迭代方法里面有6种,这6种方法在实际项目有着非常广泛的作 ...

  7. Dubbo集群容错

    转自dubbo官网文档http://dubbo.apache.org/zh-cn/blog/dubbo-cluster-error-handling.html Design For failure 在 ...

  8. GBK-----UTF-8编码格式问题浅析

    首先,想必大家在不同环境下切换写代码的时候,都会遇见乱码的时候(读取二进制的时候采用的编码和最初将字符转换成二进制时的编码不一致.),大多数人都知道,只需要把项目工程的编码格式调整一下为最初的编码就可 ...

  9. javaScript事件系统详解

    一个有情怀的猴子

  10. OptionParser命令参数介绍及使用

    使用optionParse解析命令行参数分以下几个步骤: 创建parser实例 使用add_option添加我们要处理的命令行参数 得到解析sys.argv后的options对象,查看用户的输入 代码 ...