Java-JDK,JRE和JVM的区别和联系

Java安装目录

本地成功安装JDK之后目录如下:
 
 

Java环境变量设置

  • JAVA_HOME: C:\Program Files\Java\jdk1.8.0_191;

  • CLASSPATH: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;

  • Path: %JAVA_HOME%\bin; %JAVA_HOME%\jre\bin

tools.jar包含Java各种高级功能的实现,是java必不可少的。

path\bin里都是java的可执行的编译器及其工具,如java, javadoc等。

javac依赖于JDK环境变量的设置。

JDK
 
Java Development Kit, Java开发工具包。针对开发者,主要包含jre, jvm, jdk源码包,以及bin文件夹下用于开发、编译运行的指令器集。
 
JRE
 
Java Runtime Environment, Java运行时环境。针对java用户,拥有可运行的.class文件包(jar或者war)的用户。主要包含了jvm和java运行时基本类库(rt.jar)。
 
rt.jar:java源码编译成的jar包(解压出来看一下)。用Eclipse开发时,Ctrl点击无法跳转到源文件,需要把rt.jar对应的源码包加进来,源码包正是jdk文件夹下的src.zip。
 
JVM
 
Java Virtual Machine, Java 虚拟机,是java实现跨平台的最核心的部分。所有的java程序会首先被编译为.class的字节码文件,该文件可以在虚拟机上执行。

JDK与JRE

JDK内部包含了一套JRE,与外部的JRE是一致的(外部JRE在安装JDK时可选)。JDK内部的JRE有什么用?因为java,javac等命令最终是java实现的,所以执行javac等命令需要JRE。
 

JDK目录解析

bin:  存度放编译器和工具,最主要的是编译器(javac.exe);
 
include: java与JVM交互作用的头文件
 
lib: 类库
 
jre: java运行环境
 
src.zip: 类库源文件
 

JRE与JVM

​JVM不能单独搞定class的执行,解释class时JVM需要调用解释器所需要的类库lib。
 
JVM + Lib = JRE
 
 
jvm.dll启动之后,调用动态链接库(.dll文件)(必须位于jvm.dll所在目录的父级目录)。
 

JDK, JRE与JVM的关系

 

猜你喜欢

转载自blog.csdn.net/A_bad_horse/article/details/106058859