目录结构:

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. 20155218《网络对抗》Exp3 免杀原理与实践

    20155218<网络对抗>Exp3 免杀原理与实践 一.使用msf生成后门程序的检测 (1)将上周msf生成的后门文件放在virscan.org中进行扫描,截图如下: (2)使用msf时 ...

  2. [Oracle]System 表空间的文件丢失

    如果system 表空间的文件丢失,假设有备份的情况,可以恢复.数据库需要设置为mount 状态,然后restore/recover datafile 模拟实验: SQL> select nam ...

  3. FIFO IP核

    转载: 说白了,IP核就是别人做好了的硬件模块,提供完整的用户接口和说明文档,更复杂的还有示例工程,你只要能用好这个IP核,设计已经完成一半了.说起来容易,从冗长的英文文档和网上各个非标准教程中汲取所 ...

  4. 使用 restTemplate 实现get/post 请求

    get 请求(这里是在 idea 的 test包中,所以需要直接 new RestTemplate() ) 即:RestTemplate restTemplate = new RestTemplate ...

  5. 设计模式 笔记 备忘录模式 Memento

    //---------------------------15/04/27---------------------------- //Memento 备忘录模式----对象行为型模式 /* 1:意图 ...

  6. Java+Netty、Vue+Element-UI实现的即时通信应用 leo-im

    之前工作接触了几个开源的IM产品,再加上曾经用Netty实现过几个服务,于是就有了用Netty实现一个IM的想法,于是用业余时间写了一个IM,和喜欢Netty的程序员们分享. 考虑到方便扩展,在服务端 ...

  7. 每天学一点---document.createDocumentFragment

    document.createDocumentFragment  用于创建文档对象,创建好的对象存在于内存中(不会引起回流,对元素位置和几何上的运算),不是附着在DOM树上,所以有更好的性能 可将该文 ...

  8. PAT甲题题解-1121. Damn Single (25)-水题

    博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789787.html特别不喜欢那些随便转载别人的原创文章又不给 ...

  9. “Linux内核分析”实验二报告

    张文俊 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.第二周学习内 ...

  10. Office处理

    1.NPOI:一个开源项目,不需要安装Microsoft Office,支持对Office 97-2003,2007文件格式,功能比较强大. http://npoi.codeplex.com/ 2.a ...