jvm是Java虚拟机,被编译后生成的class文件都能够在Java虚拟机里面执行,这是Java能够跨平台的主要原因
jre是代码运行时的环境,代码运行时除了在jvm上运行还需要能够驱使jvm运行的各种类库以及可执行文件,所以大致可以想象为jre=jvm+各种类库
jdk可以大致看成jdk=jre+各种可执行文件和类库,比如需要将java文件转化为虚拟机能够识别的class文件就需要用到javac命令,java执行命令等等它们都是放在各种可执行文件里面的
总结:jdk>jre>jvm
jvm是Java虚拟机,被编译后生成的class文件都能够在Java虚拟机里面执行,这是Java能够跨平台的主要原因
jre是代码运行时的环境,代码运行时除了在jvm上运行还需要能够驱使jvm运行的各种类库以及可执行文件,所以大致可以想象为jre=jvm+各种类库
jdk可以大致看成jdk=jre+各种可执行文件和类库,比如需要将java文件转化为虚拟机能够识别的class文件就需要用到javac命令,java执行命令等等它们都是放在各种可执行文件里面的
总结:jdk>jre>jvm