首页 > 代码库 > 【java学习】JDK、JRE、JVM的关系
【java学习】JDK、JRE、JVM的关系
目录结构:
<script type="text/javascript">// </script>
- 什么是JDK,JRE,JVM
- 安装JDK的时候为什么有两个jre
- 专用JRE
- 共用JRE
- 共用JRE和专用JRE的对比
- java的跨平台特性
- JDK各个文件的作用
- 参考文章
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的关系