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所在目录的父级目录)。