当前位置: 首页 > 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.xdnf.cn/news/1288477.html

相关文章:

  • 《软件工程导论》实验报告一 软件工程文档
  • 基于LLVM的memcpy静态分析工具:设计思路与原理解析(C/C++代码实现)
  • Life:Internship in OnSea Day 50, 51
  • 11. React组件插槽用法
  • Flink Python API 提交 Socket 数据源的 WordCount 作业
  • uni-app实战教程 从0到1开发 画图软件 (学会画图)
  • Flutter UI Kits by Olayemi Garuba:免费开源的高质量UI组件库
  • nvm install 14.21.3 时npm 无法下载和识别
  • -bash: ./restart.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录
  • 1.Ansible 自动化介绍
  • 串口通信“第二次总超时”的复盘
  • ETCD备份
  • aspose word for java 使用书签进行内容填充和更新
  • SM4对称加密算法的加密模式介绍
  • Python Day28 HTML 与 CSS 核心知识点 及例题分析
  • 自动驾驶 HIL 测试:构建 “以假乱真” 的实时数据注入系统
  • 《嵌入式Linux应用编程(四):Linux文件IO系统调用深度解析》
  • GraphQL 原理、应用与实践指南
  • 【Altium designer】快速建立原理图工程的步骤
  • Day05 店铺营业状态设置 Redis
  • MySQL-多表查询
  • 第23章,景深:技术综述
  • 下一代防火墙技术
  • 【KO】android 面试 算法
  • 数字气压传感器,筑牢汽车TPMS胎压监测系统的精准感知基石
  • 西门子S7-200与S7-1200通过PPI以太网模块通讯,赋能汽车制造行业发展
  • 如何在 Ubuntu 24.04 LTS Linux 中安装 JSON Server
  • WebAssembly的原理与使用
  • 前端最新Vue2+Vue3基础入门到实战项目全套教程,自学前端vue就选黑马程序员,一套全通关!笔记
  • Tauri Qt孰优孰劣