首页 > 数据库 >Java JDK安装 - OracleJDK(CentOS 7 + OracleJDK 8u201)

Java JDK安装 - OracleJDK(CentOS 7 + OracleJDK 8u201)

时间:2023-09-05 13:57:25浏览次数:54  
标签:10143 java JDK OpenJDK Oracle Java OracleJDK

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供应商的政策,不排除操作系统默认集成的版本会变更,请开发者关注。  

OracleJDK安装

本文介绍OracleJDK安装,以JDK 8u201为例。 特别关注: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

 

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

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

OracleJDK支持rpm安装与二进制文件安装。

1.rpm安装

1.1 官方获取rpm安装包 创建目录 /usr/local/jdk,将rpm包下载到该目录下 特别关注:Oracle官方启用了相关权限验证,无法通过wget下载文件

 

1.2 安装
[root@localhost jdk]# rpm -ivh jdk-8u201-linux-x64.rpm 
警告:jdk-8u201-linux-x64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID ec551f03: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:jdk1.8-2000:1.8.0_201-fcs        ################################# [100%]
Unpacking JAR files...
    tools.jar...
    plugin.jar...
    javaws.jar...
    deploy.jar...
    rt.jar...
    jsse.jar...
    charsets.jar...
    localedata.jar...
 [root@localhost jdk]#

 

1.3 确认安装目录 安装完成后,主程序文件保存在 /usr/java/jdk1.8.0_201-amd64/,并在 /usr/bin、/var/lib等目录下创建软连接
[root@localhost jdk]# find / -name java
/etc/alternatives/java
/var/lib/alternatives/java
/usr/bin/java
/usr/local/temp/jdk1.8.0_201/bin/java
/usr/local/temp/jdk1.8.0_201/jre/bin/java
/usr/java
/usr/java/jdk1.8.0_201-amd64/bin/java
/usr/java/jdk1.8.0_201-amd64/jre/bin/java

 

2.二进制文件安装

2.1 官方获取二进制安装包 创建目录 /usr/local/jdk,将二进制包下载到该目录下 特别关注:Oracle官方启用了相关权限验证,无法通过wget下载文件

 

2.2 解压安装 所有程序文件都保存在解压目录下
[root@localhost jdk]# tar -zxvf jdk-8u201-linux-x64.tar.gz 
[root@localhost jdk]# cd jdk1.8.0_201/
[root@localhost jdk1.8.0_201]# ll
总用量 25816
drwxr-xr-x 2 10143 10143     4096 12月 16 03:27 bin
-r--r--r-- 1 10143 10143     3244 12月 16 03:27 COPYRIGHT
drwxr-xr-x 3 10143 10143      132 12月 16 03:27 include
-rw-r--r-- 1 10143 10143  5236122 12月 16 00:44 javafx-src.zip
-rw-r--r-- 1 10143 10143      195 12月 16 03:27 jmc.txt
drwxr-xr-x 6 10143 10143      198 12月 16 03:27 jre
drwxr-xr-x 4 10143 10143       31 12月 16 03:27 legal
drwxr-xr-x 4 10143 10143      223 12月 16 03:27 lib
-r--r--r-- 1 10143 10143       44 12月 16 03:27 LICENSE
drwxr-xr-x 4 10143 10143       47 12月 16 03:27 man
-r--r--r-- 1 10143 10143      159 12月 16 03:27 README.html
-rw-r--r-- 1 10143 10143      123 12月 16 03:27 release
-rw-r--r-- 1 10143 10143 21160792 12月 16 03:27 src.zip
-rw-r--r-- 1 10143 10143      190 12月 16 00:44 THIRDPARTYLICENSEREADME-JAVAFX.txt
-r--r--r-- 1 10143 10143      190 12月 16 03:27 THIRDPARTYLICENSEREADME.txt
[root@localhost jdk1.8.0_201]# 

 

二、安装系统服务

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商标
[root@localhost jdk1.8.0_201]# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
[root@localhost jdk1.8.0_321]# 

 

附录:OracleJDK每次发布2个版本号

从 2014 年 10 月发布 Java SE 7 Update 71 (Java SE 7u71) 开始,Oracle在发布Oracle JDK关键补丁更新 (CPUs:Critical Patch Updates) 的同时一般会发布相应的补丁集更新 (PSUs:Patch Set Updates)。那么CPUs和PSUs之间有什么区别呢?
  1. Oracle JDK 关键补丁更新 (CPUs) 包含安全漏洞修复和重要漏洞修复,Oracle 强烈建议所有Oracle JDK用户及时升级到最新的 CPU 版本,Oracle JDK 关键补丁更新 (CPUs) 版本号采用奇数编号!
  2. Oracle JDK 补丁集更新 (PSUs) 包含相应 CPUs 中的所有修复以及其他非重要修复,仅当您受到Oracle JDK关键补丁更新 (CPUs)版本之外的其他漏洞的影响时才应当使用相应的补丁集更新 (PSUs) ,Oracle JDK 补丁集更新 (PSUs) 版本号采用偶数编号!
所以,一般情况下我们只要下载奇数编号的最新版本更新就行了!  

附录:参考文章

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

标签:10143,java,JDK,OpenJDK,Oracle,Java,OracleJDK
From: https://www.cnblogs.com/xiaoyaozhe/p/17671388.html

相关文章

  • 无涯教程-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,说......
  • javascript中的iframe
    上级向iframe传值1.用postMessage在上级用:iframeElement.contentWindow.postMessage("发送的消息内容","*");在iframe内接收消息:window.addEventListener("message",function(ev){let收到的消息=ev.data;.....}); ......