1. JVM (java virtual machine) 即java虚拟机,java能够实现跨平台的主要原因主要就是因为有java虚拟机,所有程序都要先被编译成能够在JVM上面运行的.class类文件。所以java程序并不需要直接在操作系统上运行。是由虚拟机将程序解释给本地系统运行。
2. JRE (java runtime environment) 即java的运行环境,面向java程序使用者,但是在开发的过程中也需要有JRE程序才能够运行。在JVM执行.class文件的时候需要调用类库lib。在JDK的安装目录里可以找到JRE目录,里面有两个文件夹bin和lib,可以把其中的bin看作为jvm,lib中保存的是jvm所需要的类库,jvm和lib合起来就是JRE。所以在java程序编译成.class文件之后,可以把.class文件和JRE文件一起发给别人,JRE中有运行.class的java.exe。所以只要电脑安装了JRE,就可以运行java程序。
3. JDK (java development kit) 即java开发工具包,JDK是面向开发人员使用的SDK,SDK提供了java的开发环境和运行环境。在JDK的目录下重要的文件有bin, include, lib, jre。所以关系是JDK包含JRE,JRE包含JVM。bin最主要的是编译器(javac.exe),include主要包含和JVM交互用的头文件,lib类库,jre java的运行环境。
4. SDK (software development kit) 即java软件开发包,包含函数库,编译程序,主要是给java应用程序开发者使用。
此文参考了http://blog.csdn.net/sagane/article/details/8975725