首页 > 系统相关 >Java JDK安装 - AdoptOpenJDK(CentOS 7 + AdoptOpenJDK 8)

Java JDK安装 - AdoptOpenJDK(CentOS 7 + AdoptOpenJDK 8)

时间:2023-09-05 13:57:33浏览次数:40  
标签:AdoptOpenJDK Java JDK CentOS -- OpenJDK 20 root

Linux系统-部署-运维系列导航

 

关于JVM、JRE与JDK

 

  1. JVM(Java Virtual Mechinal) Java虚拟机,是整个java实现跨平台的最核心的部分,负责解释执行字节码文件,是可运行java字节码文件的虚拟计算机。当使用Java编译器编译Java程序时,生成的是与平台无关的字节码,这些字节码只面向JVM。不同平台的JVM都是不同的,但它们都提供了相同的接口。只要为不同平台实现了相应的虚拟机,编译后的Java字节码就可以在该平台上运行。   2. JRE: Java Runtime Environment java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,普通用户而只需要安装 JRE来运行 Java 程序。   3. JDK:Java Development Kit java开发工具包,是使用java语言编写java程序所需的开发工具包。JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。   4 区别与联系
  1. JDK 用于开发,JRE 用于运行java程序 ;如果只是运行Java程序,可以只安装JRE,无序安装JDK。
  2. JDk包含JRE,JDK 和 JRE 中都包含 JVM。
  3. JVM 是 java 编程语言的核心并且具有平台独立性。
 

关于JDK发行版本

Java由SUN公司(Sun Microsystems, 发起于美国斯坦福大学, SUN是Stanford University Network的缩写)发明, 2006年SUN公司将Java开源, 此时的JDK即为OpenJDK。 就源代码而言,只有一套Java源代码,存在OpenJDK项目中。但只是源代码,不是发布版本。理论上,任何人都可以从源代码构建一个版本然后发布,但是这个发行版缺少认证,不能对外号称与Java SE兼容。  所以一些企业、社区等供应商会自己构建、进行认证,然后发布,特别关注,Linux操作系统发行商一般都会提供内置JDK发行版本(软件源支持,并没有直接默认安装)。 常见JDK发行版本包括OracleJDK,OracleOpenJDK,AdoptOpenJDK,RedHatOpenJDK,Alibaba Dragonwell,Azul Zulu,Amazon Corretto等,供应商可以添加商标或者他们认为有用的其他实用程序。 根据普遍使用场景,本文介绍OracleJDK,OracleOpenJDK,AdoptOpenJDK,其他版本请自行了解。  

1. OracleOpenJDK

OpenJDK是Java SE的开源实现, 它由SUN和Java社区提供支持, 2009年Oracle收购了Sun公司, 自此Java的维护方之一的SUN也变成了Oracle。
  • OpenJDK采用GPL V2协议放出,允许商用。
  • OpenJDK不能使用Java商标,在Sun被Oracle收购以后,Java这个商标就归Oracle所有了,OpenJDK执行“java -version”时显示OpenJDK,不会显示Java。
  • OpenJDK不包含Deployment(部署)功能:部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板。
  • OpenJDK源代码不完整,在采用GPL协议的OpenJDK中,sun jdk的一部分源代码因为产权的问题无法开放OpenJDK使用,其中最主要的部份就是JMX中的可选元件SNMP部份的代码,该部分功能可以通过插件形式补充。
  • OracleOpenJDK由Oracle定期发布,但新版本发布后,不再维护旧版本。
 

2. OracleJDK

Oracle收购SUN以后,构建并发布OracleJDK,即大家普遍熟悉的JDK,也是生产环境使用最多的JDK发行版本,拥有Java完整功能,以及OpenJDK没有的一些商用特性,同时,Oracle定期发布OracleJDK,但也会产期维护LTS的旧版本(目前Java SE 7,8,11,17,21为LTS版本),所以功能性、稳定性、安全性要高于OpenJDK。不过,作为OpenJDK社区的主导者,Oracle也在尽量减少OpenJDK和Oracle JDK的差别(source),将一些商业特性移植到了OpenJDK上,比如Java Flight Recorder,Java Mission Control和ZGC等。 对于普通开发者,两者差异可忽略不计。   2019年4月16日以及之前发布的 OracleJDK 授权许可协议是BCL协议,即Oracle Binary Code License Agreement,协议规定我们可以使用JDK,但是不能进行修改。私用和商用都可以。   2019年4月16日,Oracle发布了新的JDK 8的更新,版本号为8u211和8u212。与以往不同的是,新版本的许可协议从BCL换成了OTN,即Oracle Technology Network License Agreement,目前新发布的JDK用的都是这个协议,可以私用以及研发用,商用需要付费,这就意味着,我们不能在生产环境使用这个版本了。所以,OracleJDK最后的免费版本为2019年1月15日发布的Oracle JDK 8u201和8u202。   特别关注:关于OracleJDK每次发布2个版本号,请参照附录   下图表示两种许可协议的区别

 

下图表示各个版本对应的许可协议

特别关注:OracleJDK与JRE

OracleJDK 8及以前版本,安装后在JDK目录下会提供一个JRE目录,功能同单独JRE,但从OracleJDK 9开始不再包含JRE目录。 OracleJDK 10及以前版本,都提供独立的JRE安装包下载,但OracleJDK 11及以后版本,不再提供独立的JRE安装包下载,JDK满足开发与运行环境。

 

3. AdoptOpenJDK

2017年,一群Java用户组(JUG)成员、开发者和供应商(包括亚马逊、微软、Pivotal、Redhat等)建立了一个社区称作AdoptOpenJDK。他们提供免费、稳固的OpenJDK build,可用性与更新周期更长。甚至还有两个不同的Java虚拟机可供选择:HotSpot和OpenJ9,请参考两种虚拟机测试对比,其中,HotSpot为JVM默认类型,OpenJ9为IBM优化版。 AdoptOpenJDK官网提供OpenJDK包自定义构建选择,支持OpenJDK版本选择与JVM类型选择。 2021年7月24日,AdoptOpenJDK开始迁移至Eclipse基金会维护,AdoptOpenJDK的发布也将根据JVM类型分别到相应的平台下载: HotSpot OpenJDK 发布在adoptium.net,OpenJ9 OpenJDK发布在 IBM开发者中心,或者可以从各大镜像源平台获取,如清华镜像源AdoptOpenJDK。   特别关注:各操作系统供应商默认集成的OpenJDK为OracleOpenJDK,但根据Oracle后续的授权协议以及各OpenJDK供应商的政策,不排除操作系统默认集成的版本会变更,请开发者关注。  

AdoptOpenJDK安装

本文介绍 AdoptOpenJDK安装。 特别关注:CPU架构 获取安装包之前,确认Linux服务器的CPU架构,如果服务器架构与JDK不符,则无法运行
#arm架构
[app@ecs-4bcb-0003 ~]$ arch
aarch64
[app@ecs-4bcb-0003 ~]$ uname -a
Linux ecs-4bcb-0003.novalocal 4.19.90-23.8.v2101.ky10.aarch64 #1 SMP Mon May 17 17:07:38 CST 2021 aarch64 aarch64 aarch64 GNU/Linux
[app@ecs-4bcb-0003 ~]$  cat /proc/version
Linux version 4.19.90-23.8.v2101.ky10.aarch64 ([email protected]) (gcc version 7.3.0 (GCC)) #1 SMP Mon May 17 17:07:38 CST 2021

#x86架构
[app@host-10-169-3-54 ~]$ arch
x86_64
[app@host-10-169-3-54 ~]$ uname -a
Linux host-10-169-3-54 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[app@host-10-169-3-54 ~]$ cat /proc/version
Linux version 3.10.0-957.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Thu Nov 8 23:39:32 UTC 2018

 

组件安装操作步骤参考 组件安装部署手册模板,根据不同组件的安装目标,部分操作可以省略。 本文将按照该参考步骤执行。  

一、获取组件可执行程序库,包括主程序,此为组件的基本文件

AdoptOpenJDK建议使用二进制文件安装。 1 官方获取二进制安装包 创建目录 /usr/local/jdk,将rpm包下载到该目录下 1.1 AdoptOpenJDK - HotSpot JVM

 

1.2 AdoptOpenJDK - OpenJ9 JVM

 

 

2 解压安装 2.1 HotSpot JVM 所有程序文件都保存在解压目录下
[root@localhost jdk]# tar -zxvf OpenJDK8U-jdk_x64_linux_hotspot_8u322b06.tar.gz 
[root@localhost jdk]# cd jdk8u322-b06/
[root@localhost jdk8u322-b06]# ll
总用量 51732
-r--r--r--  1 root root     1522 1月  19 20:30 ASSEMBLY_EXCEPTION
drwxr-xr-x  2 root root     4096 1月  19 20:30 bin
drwxr-xr-x  3 root root      132 1月  19 20:30 include
drwxr-xr-x  4 root root       95 1月  19 20:30 jre
drwxr-xr-x  3 root root      144 1月  19 20:30 lib
-r--r--r--  1 root root    19274 1月  19 20:30 LICENSE
drwxr-xr-x  4 root root       47 1月  19 20:30 man
-rw-r--r--  1 root root     2401 1月  19 20:30 NOTICE
-rw-r--r--  1 root root      454 1月  19 20:30 release
drwxr-xr-x 10 root root      151 1月  19 20:30 sample
-rw-r--r--  1 root root 52776682 1月  19 20:30 src.zip
-r--r--r--  1 root root   157063 1月  19 20:30 THIRD_PARTY_README
[root@localhost jdk1.8.0_321]# 

 

2.2 OpenJ9 JVM
[root@localhost jdk]# tar -zxvf OpenJDK8U-jdk_x64_linux_openj9_linuxXL_8u282b08_openj9-0.24.0.tar.gz
[root@localhost jdk]# cd jdk8u282-b08/
[root@localhost jdk8u282-b08]# ll
总用量 53332
-r--r--r--  1 root root     1522 1月  20 2021 ASSEMBLY_EXCEPTION
drwxr-xr-x  2 root root     4096 1月  20 2021 bin
-rw-r--r--  1 root root    17300 1月  20 2021 epl-2.0.html
drwxr-xr-x  3 root root      150 1月  20 2021 include
drwxr-xr-x  4 root root       95 1月  20 2021 jre
drwxr-xr-x  3 root root      126 1月  20 2021 lib
-r--r--r--  1 root root    19650 1月  20 2021 LICENSE
drwxr-xr-x  4 root root       47 1月  20 2021 man
-rw-r--r--  1 root root    33947 1月  20 2021 openj9-notices
-rw-r--r--  1 root root     6384 1月  20 2021 openj9-openjdk-notices
-rw-r--r--  1 root root      380 1月  20 2021 release
drwxr-xr-x 10 root root      151 1月  20 2021 sample
-rw-r--r--  1 root root 54357086 1月  20 2021 src.zip
-r--r--r--  1 root root   155003 1月  20 2021 THIRD_PARTY_README

 

二、安装系统服务

jdk为java程序运行环境,无需独立运行,即无需安装系统服务  

三、主程序加入到环境变量

1.rpm安装完成后,自动在环境变量目录 /usr/bin/ 创建java主程序文件   2.二进制安装完成后,需要手动配置环境变量 编辑 /etc/profile 文件,增加如下内容,然后执行 source /etc/profile 使环境变量生效
#java env
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_201
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

 

四、配置文件

jdk为java程序运行环境,无需独立运行,即没有配置文件  

五、运行用户

jdk为java程序运行环境,无需独立运行,即无需运行用户  

六、开机启动

jdk为java程序运行环境,无需独立运行,即无需配置开机启动  

七、服务启动运行

验证jdk安装效果,使用OracleJDK会显示Java商标 1. HotSpot JVM
[root@localhost jdk8u322-b06]# java -version
openjdk version "1.8.0_322"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (Temurin)(build 25.322-b06, mixed mode)

 

2. OpenJ9 JVM
[root@localhost jdk8u282-b08]# java -version
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (build 1.8.0_282-b08)
Eclipse OpenJ9 VM (build openj9-0.24.0, JRE 1.8.0 Linux amd64-64-Bit 20210120_869 (JIT enabled, AOT enabled)
OpenJ9   - 345e1b09e
OMR      - 741e94ea8
JCL      - ab07c6a8fd based on jdk8u282-b08)

 

附录:AdoptOpenJDK与JRE

AdoptOpenJDK安装后在JDK目录下会提供一个JRE目录,且提供单独JRE下载。  

附录:AdoptOpenJDK通过第三方镜像源下载

清华大学开放源软件镜像站

  

附录:参考文章

1.码农飞升记-04-OracleJDK 与 OpenJDK 的区别和联系以及 OracleJDK builds 与其他 OpenJDK builds 的选择问题 2.码农飞升记-03-OpenJDK是什么? 3.码农飞升记-02-OracleJDK是什么?OracleJDK的版本怎么选择? 4.Java JDK 1.8 下载及其版本说明 8u202(最后一个免费版) 5.Oracle JDK究竟从哪个版本开始收费? 6.JDK、JRE、JVM三者间的联系与区别 7.一文了解 Java 各发行版本及新特性 8.openj9测试对比hotspot 9.Oracle Java SE Support Roadmap

标签:AdoptOpenJDK,Java,JDK,CentOS,--,OpenJDK,20,root
From: https://www.cnblogs.com/xiaoyaozhe/p/17671392.html

相关文章

  • Java JDK安装 - OracleJDK(CentOS 7 + OracleJDK 8u201)
    Linux系统-部署-运维系列导航 关于JVM、JRE与JDK  1.JVM(JavaVirtualMechinal)Java虚拟机,是整个java实现跨平台的最核心的部分,负责解释执行字节码文件,是可运行java字节码文件的虚拟计算机。当使用Java编译器编译Java程序时,生成的是与平台无关的字节码,这些字节码只......
  • 无涯教程-JavaScript - DVARP函数
    描述DVARP函数通过使用列表或数据库中符合您指定条件的记录的字段(列)中的数字,基于整个总体计算总体的方差。语法DVARP(database,field,criteria)争论Argument描述Required/Optionaldatabase组成列表或数据库的单元格范围。数据库是相关数据的列表,其中相关信息......
  • 无涯教程-JavaScript - DVAR函数
    描述DVAR函数使用与指定条件相匹配的列表或数据库的列中的数字,根据样本估算总体的方差。语法DVAR(database,field,criteria)争论Argument描述Required/Optionaldatabase组成列表或数据库的单元格范围。数据库是相关数据的列表,其中相关信息的行是记录,数据的列......
  • 软件测试|快速、可靠的JavaScript依赖管理工具——yarn
    简介Yarn是一个由Facebook于2016年推出的JavaScript软件包管理器。它的目标是解决npm(Node.js的默认软件包管理器)在性能和可靠性方面的一些问题。Yarn旨在提供更快、更安全、更稳定的依赖项安装过程,使JavaScript开发人员能够更轻松地管理和构建项目。本文将详细介绍Yarn的特点、优势......
  • JavaScript-属性描述对象
    概述JavaScript提供了一个内部数据结构,用来描述对象的属性,控制它的行为,比如该属性是否可写、可遍历等等。这个内部数据结构称为“属性描述对象”(attributesobject)。每个属性都有自己对应的属性描述对象,保存该属性的一些元信息。下面是属性描述对象的一个例子。{value:123,......
  • 基于Java的高校社团管理系统
    系统使用技术:servlet前端技术:css、js等开发工具:eclipse数据库:mysql5.7项目介绍:该系统适合基础中等及偏下,需要系统功能完善并且页面美观的同学。主要功能包括:权限管理(菜单管理、用户管理、角色管理)、新闻管理、留言管理、社团财务管理、社团管理、社团风采管理、社团活动管理、学生......
  • 基于Java的博客系统
    系统使用技术:servlet前端技术:css、js等开发工具:idea数据库:mysql5.7项目介绍:该系统采用基本的servlet技术,前端css、js等,系统界面美观,功能全面,适合技术要求不高,基础一般的同学使用。系统包含博客基本的常见功能,如果有能力,也可以在此基础上进行扩展。下面我们来看看功能。系统首页:http......
  • 基于Java的外卖订餐平台
    系统使用技术:SSM整合前端技术:css、js等开发工具:idea数据库:mysql5.7项目概览:该系统基于servlet,采用Mysql数据库,页面美观,功能全面,具有完整的业务逻辑,能够满足毕设/课设需要,并且包含参考论文。系统主要分为2个角色,分别为用户和管理员。功能详情:用户端模块主要实现用户在首页所进行的具......
  • 基于Java的私人牙医诊所(医院)系统
    博主主页:猫头鹰源码博主简介:Java领域优质创作者、博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询项目介绍:本系统采用servlet技术,mysql数据库,mvc架构,适合基础一般的同学,......
  • java 将长字符串截取为指定位数短字符代码
    //原始长字符串strContextStringstrContext="长字符串................................";ArrayList<String>arrayList=newArrayList(5);inttotalNo=strContext.length();//小字符串长度pageSizeintpageSize=20;if(totalNo>pageSize){//取模等于0,说......