首先查看一下jdk的目录结构:
其中比较重要的文件夹有bin、include、jre、lib,因此可知jdk包含了jre。
bin:主要包含了一些java工具,比如javac编译器等;
include:包含了java和JVM交互用的头文件;
lib:jdk工具使用需要的类库,比如tools.jar等;
因此:jdk=jre+java工具+...。
我们再来看一下jre的目录结构:
包含了两个目录:
lib:运行class时需要的类库,如rt.jar等,这是java的核心类库,平时我们使用的java.lang、java.io等等都是在这里;
bin:可以理解为这就是JVM;
因此,jre=jvm+核心类库。
jdk、jre、jvm的关系如下: