eclipse开发Java的基本概念
2021年8月12日
Java的版本:1.x vs x
Java 1.2 = Java 2
Java 3 and Java 4 never existed
Java 1.5 = Java 5
Java 1.6 = Java 6
Java 1.7 = Java 7
Java 1.8 = Java 8[1]
从Java 9开始,Oracle官方明确拒绝用1.x的称呼。[2]
所以以下版本均不存在:Java 1.9[3], Java 1.10, Java 1.11, Java 1.12, Java 1.13, Java 1.14, Java 1.15。
Java 1.a.0_b,b为小版本号,这相当于1.a.0u_b。,如1.6.0_37=1.6.0u37、1.7.0_09=1.7.0u9。
Java 1.2——即Java 2——有三个分支,分别为Standard Edition,全名为Java 2 Standard Edition,简称为J2SE;Enterprise Edition,全名为Java 2 Enterprise Edition,简称为J2EE;Mobile Edition,全名为Java 2 Mobile Edition,简称为J2ME。
J2SE、J2EE、J2ME这样的简称不好,因为把版本号包含进简称里了。所以自从Java 1.5——即Java 5——起,版本号从名称里移除了。那三个分支改名为Java SE、Java EE、Java ME,也被简称为JSE、JEE、JME。
如今,JDK指的是SE的development kit。
JRE vs JDK
JRE is Java Runtime Environment. JDK is Java Development Kit. 两者似乎不同。但是在Eclipse Installed JREs居然写着JDK,如图,这正确吗?
原来,JDK不仅可以用来开发,也可以用来运行,所以JDK包含了JRE。在JRE里列出JDK是概念正确的。
多样的JRE System Library
在eclipse创建Java项目,JRE System Library似乎可以随意变化。图显示我的两个项目,一个JRE System Library是JavaSE 11(注:不存在Java SE 1.11),另一个是jdk 15(注:不存在jdk 1.15)。这代表了什么差别呢?
jdk-15一定指的是本机安装的jdk,版本号为15。在Preferences -> Java -> Installed JREs一定可以找到该jdk-15。
本机必须安装jdk才能编译以Java SE为JRE System Library的项目。JRE System Library为Java SE 11,表示Eclipse将用Java SE 11的语法规则去做静态检查。该项目实际由jdk 15运行。至于运行时出不出错,就看运气了。[4]
图列出的execution environment可以读作Java SE 11 on jdk 15,表明jdk 15负责实际运行,Java SE 11作为表象(语法检查)。
本文发表于2021年5月15日
参考资料
- . Java Platform, Standard Edition 8 Names and Versions. . [2021-08-13].↑
- . A New JDK 9 Version String Scheme. . 2015-12-06 [2021-08-13].↑
- Nick Maiorano. Do Java 1.9 and Java 9 refer to the same thing?. . 2019-04-22 [2021-08-13].↑
- Jonah Graham. concept of JRE system library in eclipse. . 2016-02-18 [2021-08-13].↑