Java 技术体系 ------JDK、 JRE、 Java ME 、 Java SE 、Java EE
以下内容并非原创,来自于深入理解 Java 虚拟机一书:
从广义上讲,Clojure、JRuby、Groovy 等运行与 Java 虚拟机上的语言机器相关的程序都属于 Java 技术体系中的一员,但是仅从传统意义上来看,Sun 官方所定义的 Java 技术体系包括:
Java 程序设计语言
JavaAPI 类库
运行于各个硬件平台上的虚拟机
Class 文件格式
商业机构和开源社区的第三方 Java 类库
JDK:
包括 Java 程序设计语言、JavaAPI 类库、运行于各个硬件平台上的虚拟机,JDK 是用于支持 Java 程序开发的最小环境;
JRE:
Java API 类库中的 Java SE API 子集和 Java 虚拟机这两部分统称为 JRE,JRE 是支持 Java 程序运行的标准环境。
JRE 与 JDK 的区别:
JRE 顾名思义是 java 运行时环境,包含了 java 虚拟机,java 基础类库。是使用 java 语言编写的程序运行所需要的软件环境,是提供给想运行 java 程序的用户使用的。
JDK 顾名思义是 java 开发工具包,是程序员使用 java 语言编写 java 程序所需的开发工具包,是提供给程序员使用的。JDK 包含了 JRE,同时还包含了编译 java 源码的编译器 javac,还包含了很多 java 程序调试和分析的工具:jconsole,jvisualvm 等工具软件,还包含了 java 程序编写所需的文档和 demo 例子程序。
如果你需要运行 java 程序,只需安装 JRE 就可以了。如果你需要编写 java 程序,需要安装 JDK。
JRE 根据不同操作系统(如:windows,linux 等)和不同 JRE 提供商(IBM,ORACLE 等)有很多版本,最常用的是 Oracle 公司收购 SUN 公司的 JRE 版本。
如下所示是 Java 技术体系,及 JDK JRE 所涵盖的范围:
以上是根据各个组成部分的功能来进行划分的,如果按照技术所服务的领域来划分,或者说按照 Java 技术关注的重点业务领域来划分,Java 技术体系可以分为 4 个平台:
Java Card:
支持一些 Java 小程序(Applet)运行在小内存设备(如智能卡)上的平台。
Java ME:
支持 Java 程序运行在移动终端(手机、PDA)上的平台,对 Java API 有所精简,并加入了针对移动终端的支持,这个版本以前称为 J2ME。
Java SE:
支持面向桌面级应用的 JAVA 平台,提供了完整的 Java 核心 API,这个版本以前称为 J2SE。
Java EE:
支持使用多层架构的企业应用(如 ERP、CRM 应用)的 Java 平台,除了提供 Java SE API 外,还对其做了大量的扩充,并提供了相关的部署支持,这个版本以前称为 J2EE。