Jdk:JAVA development kit的缩写,是JAVA开发工具,提供给程序员使用的
Jre:JAVA Runtime development JAVA运行时环境,提供运行JAVA程序的用户使用
JVM:JAVA virtual machine JAVA虚拟机,解释class文件
三者之间的关系
在jdk的包解压以后,可以发现它包含一个jre的文件夹,jre里面有两个关键的核心内容,一个是bin文件夹一个是lib文件夹,bin也就是它的相当于是JVM,然后lib的话就是JAVA开发需要的那些类库。然后jdk除了jre以外还包含一些JAVA的工具类,例如javac,java,jconsole等,所以他们之间三者之间的关系可以概括为jdk包含jre和开发工具,jre包含jvm和类库
程序员开发的.JAVA文件经过JAVA工具javac编译后,形成.class文件。.class文件放到jvm上,jvm根据lib里的类库把.class文件翻译成机器码,映射到操作系统,然后调用操作系统使程序正常运行。
其中,jvm有不同的版本:Windows,Linux等,这也是所谓JAVA一次编译到处运行的原因——jvm有很多版本适配很多操作系统,相同的.class文件放到任意一个jvm上都可以运行,因为jvm内部做了适配。本质也是.class文件可以到处运行,不是jvm可以到处运行。