目录结构:

contents structure [-]

JDK最开始叫做Java SDK(java software develop kit,java软件开发工具包),SDK是为了更好的推广产品而设计出来的帮助程序员使用该产品的工具。比如微软为了推广自己的Window系统,于是把一些系统底层的“方法、实例,源代码····”封装好,起名为Windows SDK,然后发布出来,有了这些封装好的开发工具,才会吸引更多的程序员对Windows开发。

1,什么是JDK,JRE,JVM。

JDK:java development toolskit,包含java开发工具和jre。

JRE:java runtime enviroment,包含java运行环境和jvm。

JVM:java virtual machine,java虚拟机,用于保证java的跨平台。

三者的关系图:

2,安装JDK为什么会出现两个JRE

我们在安装JDK的时候会出现两个JRE,一个JRE在JDK的外部,一个JRE在JDK的内部,这就是所谓的共用JRE和专用JRE。

2.1专用JRE

专用JRE位于JDK的内部,是专门用于运行JDK中包含的工具。专用JRE没有注册表的设置,通常位于(C:\Program Files\jdk1.7.0\jre)中。

配置JDK的时候,我们配置了环境变量path和classpath,其中classpath里配置了tools.jar包(java开发的基础包)。这时候我们将tools.jar包更改成另一个名字,会出现如下的错误:

出现这种错误的原因就是我们更改了tools.jar的名字,java程序运行的过程中找不到tools.jar包了,所以报出错误。再查看jdk安装目录下的工具,几乎都是字节码(class文件),也就是说因此要使用JDK所附的工具来开发Java程序,所以自身需要附一套JRE才能运行。

2.2共用JRE

公共 JRE 可由其他 Java 应用程序使用,并且包含在 JDK 外部(通常位于 C:\Program Files\Java\jre1.7.0)。公共 JRE 会注册到 Windows 注册表(位于 HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft)中。

2.3公共JRE和专用JRE对比

当我们只需要运行别人已经开发好的java程序,这时候用公用jre就可以了。但是如果我们需要开发JAVA程序,那么就必须安装JDK,JDK中包含专用JRE和开发工具,这些开发工具需要专用JRE才能够使用,也就说专用JRE是为我们开发JAVA程序准备的。还有两者的jre文件是有区别的,因此不能随便互相调换。

3,java跨平台的特点

从图片中我们开出,java语言具有跨平台的特性,但是jvm不具有跨平台。

当我们在用javac命令编译java文件时,生成了jvm可以识别的字节码文件,这个过程不在jre里实现。当我们用java命令运行class文件的时,这个过程就是在jre里调用jvm来实现的。换句话说jre不具有编译功能。

4,jdk安装目录下各个文件的作用

bin  --  JDK中所包含的开发工具的可执行文件,PATH环境变量应该包含一个指向此目录的项。书中是这样说的:一些命令行工具,包括Java编译器的启动命令。bin目录下所有可执行文件的作用可以参考JDK/bin目录下的不同exe文件的用途文档

db  --   jdk从1.6之后内置了Derby数据库,它是是一个纯用Java实现的内存数据库,属于Apache的一个开源项目。用Java实现的,所以可以在任何平台上运行;另外一个特点是体积小,免安装,只需要几个小jar包就可以运行了。

include   --   java和JVM交互用的头文件;

lib  --   常用类库

jre  --  java运行环境

src --  部分源代码的压缩文件

javafx-src  --  图形和媒体包的源码压缩文件

5,参考文章

1,JDK/bin目录下的不同exe文件的用途

2,JDK各文件夹作用。

3,安装JDK的时候为什么会有两个jre文件

4,Java中JDK,JRE和JVM之间的关系

【java】JDK、JRE、JVM的关系的更多相关文章

  1. dos命令,jdk&jre&jvm的关系,classpath和path区别

    Day01_SHJavaTraing_4-2-2017 一.学习方法 1.独立思考 2.独立整理.总结知识点 3.整理Exception报错文档 4.莫钻牛角尖 5.敲代码,敲,猛敲,死里敲 6.写代 ...

  2. JDK JRE JVM的关系

    JVM:Java Virtual Machine的缩写,即Java虚拟机 JRE:Java Runtime Environment的缩写,即Java运行环境 JDK:Java Development ...

  3. JDK,JRE,JVM,JMM关系与区别

    JVM: Java Virtual Machine, 将java文件编译成class文件并运行class文件的软件 JRE:Java  Runtime  Enviromental,包含了JVM和Jav ...

  4. JDK,JRE,JVM三者关系

    已上图,如有疏漏错误请在下面评论区指出,感激不尽!

  5. jdk jre jvm 关系

    很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天特写此文,来整理下三者的关系. JDK : Java Development ...

  6. java的概念了解(jdk,jre,jvm,javase,javaee,javame)

    jvm jvm:java virtual machine,俗称:java虚拟机,只认识xxx.class这类文件 jre jre:java runtime environment,俗称java运行环境 ...

  7. 浅谈 JVM 结构体系、类加载、JDK JRE JVM 三者的关系

    一.java类,创建.编译.到运行的工程: 1.随便建一个Java类,保存后就是一个.java文件, 2.然后我们使用 javac命令编译 .java文件,生产 .class文件. 3.再然后使用 j ...

  8. 1、Java语言概述与开发环境——JDK JRE JVM理解

    一.理解概念: 1.JDK(Java Development Kit Java开发工具包) JDK是提供给Java开发人员使用的,其中包含Java的开发工具,也包括JRE,所以安装了JDK,就不用单独 ...

  9. jre,jdk,jvm的关系

    今天在用maven搭建项目工程的时候出错的原因竟然是因为使用了jre,而非jdk导致报错,这里就搜集了有关这方面的信息:   JDK(Java Development Kit)是针对Java开发员的产 ...

  10. Java的特性和优势以及不同版本的分类,jdk,jre,jvm的联系与区别,javadoc的生成

    Java 1.Java的特性和优势 Write Once,Run Anywhere 简单性 面向对象 可移植性 高性能 分布式 动态性 多线程 安全性 健壮性 2.Java的三大版本 JavaSE:标 ...

随机推荐

  1. tf tensor 输出

    在学习TensorFlow的过程中,我们需要知道某个tensor的值是什么,这个很重要,尤其是在debug的时候.也许你会说,这个很容易啊,直接print就可以了.其实不然,print只能打印输出sh ...

  2. Dynamics CRM2016 导入数据格式之xlsx的应用

    在CRM中导入数据中新增加了一个xlsx格式,这个在之前的版本(2013中没有,2015不清楚是否有)中是没有的 本篇的目的就是为了提醒各位,不要把这个格式和csv的导入功能混淆,因为xlsx格式的用 ...

  3. 开源软件License汇总

    用到的open source code越多,遇到的开源License协议就越多.License是软件的授权许可,里面详尽表述了你获得代码后拥有的权利,可以对别人的作品进行何种操作,何种操作又是被禁止的 ...

  4. 纯 CSS 解决自定义 CheckBox 背景颜色问题

    CodePen 需要使用色 #ec6337(当然可以是任意颜色),解决问题:记住密码定制 CheckBox,解释全在注释里 主要使用到 ::before 或 ::after 伪类处理,伪装成内部的那个 ...

  5. sql优化详细介绍学习笔记

    因为最近在面试,发现sql优化这个方面问的特别特别的多.之前都是零零星星,不够全面的了解一点,刚刚在网上查了一下,从 http://blog.csdn.net/zhushuai1221/article ...

  6. 架构师修炼 II - 表达思维与驾驭方法论

    开篇之前我想先说说当年开发的那点事儿:大约10年前吧,我还是一个程序员的时候经常都是遇到这样的项目开发流程: 解决方案 :满足客户目的和投标用的一堆文档(不少还是互联网上抄的) ,是以Word为主的纯 ...

  7. 初级字典树查找在 Emoji、关键字检索上的运用 Part-2

    系列索引 Unicode 与 Emoji 字典树 TrieTree 与性能测试 生产实践 在有了 Unicode 和 Emoji 的知识准备后,本文进入编码环节. 我们知道 Emoji 是 Unico ...

  8. MODIS 数据产品预处理

    MODIS 数据产品预处理 1  MCTK重投影 第一步:安装ENVI的MCTK扩展工具 解压压缩包,将其中的mctk.sav与modis_products.scsv文件复制到如图所示,相应的ENVI ...

  9. 读取配置文件的URL,使用httpClient发送Post和Get请求,实现查询快递物流和智能机器人对话

    1.主要jar包: httpclient-4.3.5.jar   httpcore-4.3.2.jar 2.目录结构如图所示: 3.url.properties文件如下: geturl=http:// ...

  10. jenkins+maven+svn+npm自动发布部署实践

    一.系统版本centos7.6 二.根据jenkins官方安装方法yum安装jenkins 1.进入jenkins官网下载页面https://jenkins.io/download/,选择Red Ha ...