一直以来并不能很好地区分这三者,直到今天。
每次拿到一台新机器的时候,作为一名开发人员,我们需要先安装开发环境,这个JAVA开发环境,我们称之为JDK(Java Development Kit)。
但是作为开发的成果,也就是客户最终使用的应用,它在客户的机器上,仅仅需要一个程序运行的环境即可,无需开发环境。而这个运行环境,我们称之为JRE(Java Runtime Environment),运行时环境。
人们常说,java程序,一次编译,处处运行,可以跨平台。其本质是,在任何一个平台上,安装对应的虚拟机。linux系统就安装linux上的java虚拟机,Windows上就安装windows上的java虚拟机,Mac系统就安装Mac上的java虚拟机。这个虚拟机介于程序和操作系统之间,基于此,才得以跨平台。这个虚拟机,我们称之为JVM(Java Virtual Machine)。
另外,他们三者之间存在一个包含关系:JDK包含JRE,JRE包含JVM。