JDK, JRE和JVM的区别

JRE, JDK, JVM, 

总的来说, JDK包括JRE, 而JRE又包括了JVM.

JDK - Java Development Kit 

JDK是Java开发工具包。是针对Java开发人员提供的。安装完JDK后,可以看到它主要包括这几部分:

--bin 主要包含javac.exe, java.exe, javaws.exe等工具

--db  Java 6中加入的新成员。这是一个纯 Java 实现、开源的数据库管理系统(DBMS),源于 Apache 软件基金会(ASF)名下的项目 Derby。

--include Java和JVM交互用的头文件

--jre 包含一个Java运行时环境。

--lib Java开发环境类库

JRE - Java Runtime Environment

JRE是Jave运行时环境。运行Java程序必须JRE。主要包括:

--bin 可以认为这就是JVM

--lib JVM工作所需要的类库

JVM - Java Virtual Machine

JVM是Java虚拟机。.class文件就是运行在JVM上。

两处JRE的区别:

jdk下还有一个jre文件夹,而且这个jre在bin目录下多了个server文件夹!

    当用户只需要执行 java 的程序时,那么C:\Program Files\Java\jre1.5.0_08的 jre 就 ok !

    当用户是 java 程序员,则需要 java 开发环境。编译时,系统就会优先去找C:\Program Files\Java\jdk1.5.0_08\bin下的“ java 、 javac ”这些命令所在目录或者他们的父目录的 jre 。即开发环境下运行的是 jdk 下的 jre 。

3个lib目录的作用:

JDK下的lib包括java开发环境的jar包,是给JDK用的,例如JDK下有一些工具,可能要用该目录中的文件。例如,编译器等。

    JRE下的lib只是运行java程序的jar包,是为JVM运行时候用的。包括所有的标准类库,和扩展类。

    JDK下的JRE下的lib是开发环境中,运行时需要的jar包。最典型的就是导入的外部驱动jar包(/ext)。因为编译时,系统找的是jdk下的jre。而不是最外层的jre。 

猜你喜欢

转载自quyuanhong.iteye.com/blog/2359601