当前位置: 首页 > news >正文

Ubuntu与Rocky系统安装Java全指南

java 是一种广泛使用的编程语言,因其“一次编写,到处运行”的特性而受到开发者们的喜爱。无论你是要开发企业级应用、Android应用还是进行大数据处理,Java 都是不可或缺的工具之一。本文将详细介绍如何在 Ubuntu,Rocky 系统上安装 Java,并确保其正确配置以便顺利开展你的开发工作。

JDK

JDK 和 JRE
在这里插入图片描述

Java SE API:Java 基础类库开发接口
JRE:Java Runtime Environment缩写,指Java运行时环境,包含 JVM + Java核心类库
JDK:Java Development Kit,即 Java 语言的软件开发工具包,JDK协议基于JRL(JavaResearch License) 协议
在这里插入图片描述
在这里插入图片描述

JVM 的各种版本

参考链接: https://en.wikipedia.org/wiki/List_of_Java_virtual_machines https://en.wikipedia.org/wiki/Comparison_of_Java_virtual_machines

各个公司和组织基于标准规范,开发了不同的JVM版本

  • SUN HotSpot
  • IBM J9VM
  • BEA JRockit

JVM 市场份额
2018年12月,由 Snyk 和 The Java Magazine 联合推出发布的 2018 JVM 生态调查报告
在这里插入图片描述

Oracle JDK版本

在这里插入图片描述
在这里插入图片描述
JDK也就是常说的J2SE,在1999年,正式发布了Java第二代平台,发布了三个版本:
J2SE:标准版,适用于桌面平台
J2EE:企业版,java在企业级开发所有规范的总和,共有13个大的规范,Servlet、Jsp都包含在 JavaEE规范中
J2ME:微型版,适用于移动、无线、机顶盒等设备环境
2005年,Java的版本又更名为JavaSE、JavaEE、JavaME
JDK 版本使用情况
数据来源
https://www.baeldung.com/java-in-2019
在这里插入图片描述
收费
从2019年1月份开始,Oracle JDK 开始对 Java SE 8 之后的版本开始进行商用收费,确切的说是201/202 之后的版本。如果你用 Java 开发的功能如果是用作商业用途的,如果还不想花钱购买的话,能免费使用的最新版本是201/202。当然如果是个人客户端或者个人开发者可以免费试用 Oracle JDK 所有的版本
发版方式
在 JDK 9 发布之前,Oracle 的发版策略是以特性驱动的,只有重大的特性改变才会发布大版本,比如 JDK 7 到 JDK 8,中间会发多个更新版本。而从 JDK 9 开始变为以时间驱动的方式。发布周期为6个月一个大版本,比如 JDK 9 到 JDK 10,3个月一次补丁版,3年一个 LTS(长期支持版本)

OpenJDK

openJDK 介绍
在这里插入图片描述

OpenJDK是Sun公司采用GPL v2协议发布的JDK开源版本,于2009年正式发布
在这里插入图片描述
官方网站:https://openjdk.java.net/projects/jdk6/
OpenJDK 7是基于JDK7的beta版开发,但为了也将Java SE 6开源,从OpenJDK7的b20构建反向分支开发,从中剥离了不符合Java SE 6规范的代码,发布OpenJDK 6。所以OpenJDK6和JDK6没什么关系,只是 API兼容而已
OpenJDK使用GPL v2可以用于商业用途。目前由红帽维护。OpenJDK也有在其基础上的众多发行版,比如阿里的Dragonwell。相对来说,Oracle jDK具有更好的响应能力和JVM性能,更加稳定

安装 openjdk

在 Rocky 中,可以使用 yum 仓库安装 openjdk

[root@rocky9 ~]# yum list *jdk*
Last metadata expiration check: 2:39:46 ago on Thu 27 Mar 2025 06:55:01 PM CST.
Available Packages
ant-openjdk11.noarch                                                        1.10.9-11.el9_5                                             appstream
ant-openjdk17.noarch                                                        1.10.9-11.el9_5                                             appstream
ant-openjdk21.noarch                                                        1.10.9-11.el9_5                                             appstream
ant-openjdk8.noarch                                                         1.10.9-11.el9_5                                             appstream
copy-jdk-configs.noarch                                                     4.0-3.el9                                                   appstream
idm-ldapjdk.noarch                                                          5.5.0-1.el9                                                 appstream
java-1.8.0-openjdk.x86_64                                                   1:1.8.0.442.b06-2.el9                                       appstream
java-1.8.0-openjdk-demo.x86_64                                              1:1.8.0.442.b06-2.el9                                       appstream
java-1.8.0-openjdk-devel.x86_64                                             1:1.8.0.442.b06-2.el9                                       appstream
java-1.8.0-openjdk-headless.x86_64                                          1:1.8.0.442.b06-2.el9                                       appstream
java-1.8.0-openjdk-javadoc.noarch                                           1:1.8.0.442.b06-2.el9                                       appstream
java-1.8.0-openjdk-javadoc-zip.noarch                                       1:1.8.0.442.b06-2.el9                                       appstream
java-1.8.0-openjdk-src.x86_64                                               1:1.8.0.442.b06-2.el9                                       appstream
java-11-openjdk.x86_64                                                      1:11.0.25.0.9-3.el9                                         appstream
java-11-openjdk-demo.x86_64                                                 1:11.0.25.0.9-3.el9                                         appstream
java-11-openjdk-devel.x86_64                                                1:11.0.25.0.9-3.el9                                         appstream
java-11-openjdk-headless.x86_64                                             1:11.0.25.0.9-3.el9                                         appstream
java-11-openjdk-javadoc.x86_64                                              1:11.0.25.0.9-3.el9                                         appstream
java-11-openjdk-javadoc-zip.x86_64                                          1:11.0.25.0.9-3.el9                                         appstream
java-11-openjdk-jmods.x86_64                                                1:11.0.25.0.9-3.el9                                         appstream
java-11-openjdk-src.x86_64                                                  1:11.0.25.0.9-3.el9                                         appstream
java-11-openjdk-static-libs.x86_64                                          1:11.0.25.0.9-3.el9                                         appstream
java-17-open
http://www.dtcms.com/a/328395.html

相关文章:

  • 【门诊进销存出入库管理系统】佳易王医疗器械零售进销存软件:门诊进销存怎么操作?系统实操教程 #医药系统进销存
  • 湖北手机基站数据分享
  • 当“超级高速“遇见“智能大脑“:5G-A×AI如何重塑万物智联时代
  • 双椒派E2000D开发板Linux环境配置指南
  • WireShark:非常好用的网络抓包工具
  • 【工具】通用文档转换器 推荐 Markdown 转为 Word 或者 Pdf格式 可以批量或者通过代码调用
  • 淘宝化妆品
  • Day52 Java面向对象07 类与对象总结
  • 第五章 树与二叉树
  • 腾讯云iOA:全面提升企业办公安全与效率的智能解决方案
  • 什么时候用WS(WebSocket),什么使用用SSE(Server-Sent Events)?
  • HTTP 协议详解:深入理解 Header 与 Body!
  • 【前端Vue】log-viewer组件的使用技巧
  • 有趣的 npm 库 · json-server
  • frp 实现内网穿透实战教程
  • CANopen Magic调试软件使用
  • 1 JQ6500语音播报模块详解(STM32)
  • 工作流调度(草稿)
  • Android Studio注释如何不从行首开始
  • Mysql GROUP_CONCAT函数数据超长导致截取问题记录
  • 常用Linux指令:Java/MySQL/Tomcat/Redis/Nginx运维指南
  • React 合成事件系统深度解析
  • Jenkins 实战指南-项目自动构建部署全流程通关
  • 明远智睿T113-i核心板:工业设备制造的“破局者”
  • Qt 常用控件 - 7
  • 大数据与人工智能在保险行业中的应用:2025年精准理赔的优化
  • VirtualBox 虚拟机磁盘扩容完整手册
  • 深入理解二维数组创建与使用
  • Unity TextMeshPro(二)优化
  • Redis知识点+项目+面试八股