如果你正在学习数据库,比如Oracle,或者中间件,比如TongRDS,建议先了解一下有几种JDK。
“一次编写,到处运行”(Write Once, Run Anywhere,WORA), Java语言因此名闻天下。
虽然在编程语言排行榜上Java不再霸榜,但是Java语言仍是程序员必备技能之一。
(数据来源:https://www.tiobe.com/tiobe-index/)
学习Java?
Java 是一种用途广泛、企业需求高、拥有成熟生态系统的编程语言。Java的“一次编写,到处运行”特性,使其在不同平台间具有优越的兼容性和可移植性。由于其强大的性能和安全性,Java在企业级应用中非常受欢迎,同时它也是许多大型企业后端开发的主流选择。Java面向对象的特性,有助于构建可维护和可扩展的软件系统。
Java拥有一个活跃的开发者社区,提供丰富的资源和支持,这对于解决问题和学习新技术非常有帮助。Java也是教育和创新的重要工具,它在云计算、大数据等新兴技术领域发挥着重要作用。
此外,Java与许多其他技术兼容,可以轻松地与各种数据库、中间件和现有系统集成。并且有强大的集成开发环境(IDE)支持,如Eclipse、IntelliJ IDEA 和 VSCode等,进一步提高了Java开发的效率。
几种Java?
先说明几个基础概念:
- Java: 一般指编程语言,有基于类的面向对象、多线程、垃圾回收、基于组件和分布式计算等特性。
- JDK: 是为Java开发者设计的,包含了编译Java代码所需的编译器、调试器、工具和库。它允许开发者编译和运行Java应用程序,以及开发新的Java程序。
- JRE: 是为运行Java应用程序设计的,包含了运行Java程序所需的Java虚拟机(JVM)和核心类库。它不包含编译Java代码所需的工具。
本文主要介绍的面向开发者的 JDK 工具包,下面介绍几种常见的 JDK 。
1. Oracle JDK
由Java的原始开发者Oracle公司提供的官方版本。
Oracle JDK通常用于生产环境,因为它提供了完整的工具集和最佳性能。
目前,Oracle JDK 最新版本为 JDK 22.0.1 [1]
[shawnyan@rl9 ~]$ java -version
java version "22.0.1" 2024-04-16
Java(TM) SE Runtime Environment (build 22.0.1+8-16)
Java HotSpot(TM) 64-Bit Server VM (build 22.0.1+8-16, mixed mode, sharing)
小知识
1996年,Sun Microsystems 发布 Java,于2007年5月8日将JDK源代码捐赠给OpenJDK 。因此JDK是自由软件。
传统 JDK 也称为 Sun JDK 或 Oracle JDK,以区别于 OpenJDK 等其他实现。
SUN 公司成立于1982年。2009年4月20日,甲骨文宣布以74亿美元收购Sun。次年2月,取消Sun子公司,合并进Oracle。
Java界流传的Sun认证,通常是指Sun公司推出的Java认证体系,是全球最受欢迎的程序员认证之一。
//img
(感谢 @青学会会长 提供的证书照片)
目前,Java认证主要有三项:
- Oracle Certified Professional, Java SE 8 Programmer
- Oracle Certified Professional: Java SE 11 Developer
- Oracle Certified Professional: Java SE 17 Developer
2. OpenJDK
OpenJDK 是一个开源版本的JDK,由Java社区开发,采用 GPL 协议。
它提供了与Oracle JDK相似的功能,但通常是免费使用的,并且更加开放。
小知识
JDK 22 于2024年3月19日正式发布。
Java 23 平台计划于 2024年9月发布。[2]
[shawnyan@rl9 ~]$ ./java -version
openjdk version "22.0.1" 2024-04-16
OpenJDK Runtime Environment (build 22.0.1+8-16)
OpenJDK 64-Bit Server VM (build 22.0.1+8-16, mixed mode, sharing)
3. Amazon Corretto
Corretto 是获得 Amazon 长期支持的开放 Java 开发工具包(OpenJDK)。Corretto 使用 Java 技术兼容性套件(TCK)进行了认证,以确保其符合 Java SE 标准,并且在 Linux、Windows 和 macOS 上可用。
Corretto 是 Open JDK 的发行版,其中包含 Amazon 提供的补丁,这些补丁尚未集成到相应的 OpenJDK 更新项目中。Amazon 内部在数千种生产服务上运行 Corretto。
Corretto 最新版本 22.0.1.8.1 基于 OpenJDK 22.0.1+8。[3]
[shawnyan@rl9 ~]$ ./java -version
openjdk version "22.0.1" 2024-04-16
OpenJDK Runtime Environment Corretto-22.0.1.8.1 (build 22.0.1+8-FR)
OpenJDK 64-Bit Server VM Corretto-22.0.1.8.1 (build 22.0.1+8-FR, mixed mode, sharing)
4. Red Hat OpenJDK
红帽构建的 OpenJDK (Open Java Development Kit)是 Java Platform, Standard Edition (Java SE)的一个免费的开源实现。红帽构建的 OpenJDK 有四个版本: 8u、11u、17u 和 21u。
红帽构建的 OpenJDK 软件包在 Red Hat Enterprise Linux 和 Microsoft Windows 上提供,并作为红帽生态系统目录中的 JDK 和 JRE 提供。
值得关注的是:
RHEL 9 依旧支持 OpenJDK 8,具体取决于 OpenJDK 8 生命周期。
RHEL 9 中的系统默认 OpenJDK 是 OpenJDK 11,并从 RHEL 9.3 开始引入 OpenJDK 21。[4]
[shawnyan@rl9 ~]$ java -version
openjdk version "11.0.23" 2024-04-16 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.23.0.9-2) (build 11.0.23+9-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.23.0.9-2) (build 11.0.23+9-LTS, mixed mode, sharing)
5. BishengJDK
slogan: ARM上最好用的JDK
毕昇JDK是华为内部基于OpenJDK定制的Huawei JDK的开源版本。Huawei JDK运行在华为内部500多个产品上,研发团队积累了丰富的开发经验,解决了业务实际运行中遇到的多个疑难问题。
目前毕昇JDK支持8、11、17三个LTS版本。[5]
[shawnyan@rl9 ~]$ ./java -version
openjdk version "17.0.10" 2024-01-16
OpenJDK Runtime Environment BiSheng (build 17.0.10+11)
OpenJDK 64-Bit Server VM BiSheng (build 17.0.10+11, mixed mode, sharing)
6. TongJDK
在去年冬天的 openEuler 峰会上,东方通发布基于 BishengJDK 的 TongJDK 商用产品。
东方通是中间件领域的龙头企业,具有很大的行业影响力,积极拥抱开源,将有力推动商用中间件产业化落地的能力,并推动开源社区的商业化发展。
东方通TongJDK是基于BishengJDK,扎根基础软件底层,面向海量使用Java程序的客户需求而研发发布,产品内核保持与OpenJDK同步,东方通定期发布其安全和漏洞补丁,为企业用户提供更高安全保障。[6]
安装JDK?
在Oracle数据库中,默认自带了JDK,所以无需另外安装。
在 Oracle 23ai 中,内置 Java JVM 基础架构已经支持 JDK 11 的功能,包括 Java 模块系统。
此功能通过在数据库内设计或重用和执行基于 Java 11 的代码和库来提高生产力。
那么,在基于 Java 的中间件,如何使用 JDK。
常见办法是安装 JDK 包到指定目录,
比如,下载 OpenJDK 安装包,并解压到 /opt 路径下,并将路径添加到环境变量中。
tar zxf openjdk-22.0.1_linux-x64_bin.tar.gz -C /opt
echo 'export JAVA_HOME=/opt/jdk-22.0.1/' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
使环境变量生效后,检查JDK版本。
java -version
openjdk version "22.0.1" 2024-04-16
OpenJDK Runtime Environment (build 22.0.1+8-16)
OpenJDK 64-Bit Server VM (build 22.0.1+8-16, mixed mode, sharing)
总结
本文简单的介绍了什么是 Java/JDK,以及 6 种常见的 JDK。
那么,哪种JDK才是程序猿/程序媛心中最常用的呢?
– END –
如果这篇文章为你带来了灵感或启发,就请帮忙点『赞』or『在看』or『转发』吧,感谢!(๑˃̵ᴗ˂̵)
-
https://www.oracle.com/java/technologies/java-se-glance.html ↩︎
-
https://openjdk.org/projects/jdk/23/spec/ ↩︎
-
https://github.com/corretto/corretto-22 ↩︎
-
https://access.redhat.com/articles/1299013 ↩︎
-
https://www.openeuler.org/zh/other/projects/bishengjdk/ ↩︎
-
https://www.tongtech.com/newsDetail.html?id=102244 ↩︎