Java是一种免费的开放源代码,并且是专门设计用于Internet的分布式环境的最流行的编程语言之一。Java有两种不同的实现,Oracle Java和OpenJDK。Oracle Java具有一些其他商业功能,而OpenJDK是Java平台的开源实现。
在本教程中,我们将向您展示如何在CentOS 8上安装OpenJDK 8,OpenJDK 11和Oracle 8。
要求
- 运行CentOS的服务器。
安装OpenJDK 11
首先,通过运行以下命令在CentOS 8存储库中搜索OpenJDK可用版本:
dnf search jdk
您应该看到以下输出:
============================================== Name & Summary Matched: jdk ===============================================
copy-jdk-configs.noarch : JDKs configuration files copier
java-1.8.0-openjdk.x86_64 : OpenJDK 8 Runtime Environment
java-1.8.0-openjdk-accessibility.x86_64 : OpenJDK 8 accessibility connector
java-1.8.0-openjdk-accessibility-fastdebug.x86_64 : OpenJDK 8 accessibility connector for packages with debugging on and
: optimisation
java-1.8.0-openjdk-accessibility-slowdebug.x86_64 : OpenJDK 8 accessibility connector for packages with debugging on and
: no optimisation
java-1.8.0-openjdk-demo.x86_64 : OpenJDK 8 Demos
java-1.8.0-openjdk-demo-fastdebug.x86_64 : OpenJDK 8 Demos optimised with full debugging on
java-1.8.0-openjdk-demo-slowdebug.x86_64 : OpenJDK 8 Demos unoptimised with full debugging on
java-1.8.0-openjdk-devel.x86_64 : OpenJDK 8 Development Environment
java-1.8.0-openjdk-devel-fastdebug.x86_64 : OpenJDK 8 Development Environment optimised with full debugging on
java-1.8.0-openjdk-devel-slowdebug.x86_64 : OpenJDK 8 Development Environment unoptimised with full debugging on
java-1.8.0-openjdk-fastdebug.x86_64 : OpenJDK 8 Runtime Environment optimised with full debugging on
java-1.8.0-openjdk-headless.x86_64 : OpenJDK 8 Headless Runtime Environment
java-1.8.0-openjdk-headless-fastdebug.x86_64 : OpenJDK 8 Runtime Environment optimised with full debugging on
java-1.8.0-openjdk-headless-slowdebug.x86_64 : OpenJDK 8 Runtime Environment unoptimised with full debugging on
java-1.8.0-openjdk-javadoc.noarch : OpenJDK 8 API documentation
java-1.8.0-openjdk-javadoc-zip.noarch : OpenJDK 8 API documentation compressed in a single archive
java-1.8.0-openjdk-slowdebug.x86_64 : OpenJDK 8 Runtime Environment unoptimised with full debugging on
java-1.8.0-openjdk-src.x86_64 : OpenJDK 8 Source Bundle
java-1.8.0-openjdk-src-fastdebug.x86_64 : OpenJDK 8 Source Bundle for packages with debugging on and optimisation
java-1.8.0-openjdk-src-slowdebug.x86_64 : OpenJDK 8 Source Bundle for packages with debugging on and no optimisation
java-11-openjdk.x86_64 : OpenJDK 11 Runtime Environment
java-11-openjdk-demo.x86_64 : OpenJDK 11 Demos
java-11-openjdk-demo-fastdebug.x86_64 : OpenJDK 11 Demos optimised with full debugging on
java-11-openjdk-demo-slowdebug.x86_64 : OpenJDK 11 Demos unoptimised with full debugging on
java-11-openjdk-devel.x86_64 : OpenJDK 11 Development Environment
java-11-openjdk-devel-fastdebug.x86_64 : OpenJDK 11 Development Environment optimised with full debugging on
java-11-openjdk-devel-slowdebug.x86_64 : OpenJDK 11 Development Environment unoptimised with full debugging on
java-11-openjdk-fastdebug.x86_64 : OpenJDK 11 Runtime Environment optimised with full debugging on
java-11-openjdk-headless.x86_64 : OpenJDK 11 Headless Runtime Environment
java-11-openjdk-headless-fastdebug.x86_64 : OpenJDK 11 Runtime Environment optimised with full debugging on
java-11-openjdk-headless-slowdebug.x86_64 : OpenJDK 11 Runtime Environment unoptimised with full debugging on
java-11-openjdk-javadoc.x86_64 : OpenJDK 11 API documentation
java-11-openjdk-javadoc-zip.x86_64 : OpenJDK 11 API documentation compressed in a single archive
java-11-openjdk-jmods.x86_64 : JMods for OpenJDK 11
java-11-openjdk-jmods-fastdebug.x86_64 : JMods for OpenJDK 11 optimised with full debugging on
java-11-openjdk-jmods-slowdebug.x86_64 : JMods for OpenJDK 11 unoptimised with full debugging on
java-11-openjdk-slowdebug.x86_64 : OpenJDK 11 Runtime Environment unoptimised with full debugging on
java-11-openjdk-src.x86_64 : OpenJDK 11 Source Bundle
java-11-openjdk-src-fastdebug.x86_64 : OpenJDK 11 Source Bundle for packages with debugging on and optimisation
java-11-openjdk-src-slowdebug.x86_64 : OpenJDK 11 Source Bundle for packages with debugging on and no optimisation
java-11-openjdk-static-libs.x86_64 : OpenJDK 11 libraries for static linking
java-11-openjdk-static-libs-fastdebug.x86_64 : OpenJDK 11 libraries for static linking optimised with full debugging on
java-11-openjdk-static-libs-slowdebug.x86_64 : OpenJDK 11 libraries for static linking unoptimised with full debugging on
java-17-openjdk.x86_64 : OpenJDK 17 Runtime Environment
java-17-openjdk-demo.x86_64 : OpenJDK 17 Demos
java-17-openjdk-demo-fastdebug.x86_64 : OpenJDK 17 Demos optimised with full debugging on
java-17-openjdk-demo-slowdebug.x86_64 : OpenJDK 17 Demos unoptimised with full debugging on
java-17-openjdk-devel.x86_64 : OpenJDK 17 Development Environment
java-17-openjdk-devel-fastdebug.x86_64 : OpenJDK 17 Development Environment optimised with full debugging on
java-17-openjdk-devel-slowdebug.x86_64 : OpenJDK 17 Development Environment unoptimised with full debugging on
java-17-openjdk-fastdebug.x86_64 : OpenJDK 17 Runtime Environment optimised with full debugging on
java-17-openjdk-headless.x86_64 : OpenJDK 17 Headless Runtime Environment
java-17-openjdk-headless-fastdebug.x86_64 : OpenJDK 17 Runtime Environment optimised with full debugging on
java-17-openjdk-headless-slowdebug.x86_64 : OpenJDK 17 Runtime Environment unoptimised with full debugging on
java-17-openjdk-javadoc.x86_64 : OpenJDK 17 API documentation
java-17-openjdk-javadoc-zip.x86_64 : OpenJDK 17 API documentation compressed in a single archive
java-17-openjdk-jmods.x86_64 : JMods for OpenJDK 17
java-17-openjdk-jmods-fastdebug.x86_64 : JMods for OpenJDK 17 optimised with full debugging on
java-17-openjdk-jmods-slowdebug.x86_64 : JMods for OpenJDK 17 unoptimised with full debugging on
java-17-openjdk-slowdebug.x86_64 : OpenJDK 17 Runtime Environment unoptimised with full debugging on
java-17-openjdk-src.x86_64 : OpenJDK 17 Source Bundle
java-17-openjdk-src-fastdebug.x86_64 : OpenJDK 17 Source Bundle for packages with debugging on and optimisation
java-17-openjdk-src-slowdebug.x86_64 : OpenJDK 17 Source Bundle for packages with debugging on and no optimisation
java-17-openjdk-static-libs.x86_64 : OpenJDK 17 libraries for static linking
java-17-openjdk-static-libs-fastdebug.x86_64 : OpenJDK 17 libraries for static linking optimised with full debugging on
java-17-openjdk-static-libs-slowdebug.x86_64 : OpenJDK 17 libraries for static linking unoptimised with full debugging on
java-latest-openjdk.x86_64 : OpenJDK 19 Runtime Environment
java-latest-openjdk-demo.x86_64 : OpenJDK 19 Demos
java-latest-openjdk-demo-fastdebug.x86_64 : OpenJDK 19 Demos optimised with full debugging on
java-latest-openjdk-demo-slowdebug.x86_64 : OpenJDK 19 Demos unoptimised with full debugging on
java-latest-openjdk-devel.x86_64 : OpenJDK 19 Development Environment
java-latest-openjdk-devel-fastdebug.x86_64 : OpenJDK 19 Development Environment optimised with full debugging on
java-latest-openjdk-devel-slowdebug.x86_64 : OpenJDK 19 Development Environment unoptimised with full debugging on
java-latest-openjdk-fastdebug.x86_64 : OpenJDK 19 Runtime Environment optimised with full debugging on
java-latest-openjdk-headless.x86_64 : OpenJDK 19 Headless Runtime Environment
java-latest-openjdk-headless-fastdebug.x86_64 : OpenJDK 19 Runtime Environment optimised with full debugging on
java-latest-openjdk-headless-slowdebug.x86_64 : OpenJDK 19 Runtime Environment unoptimised with full debugging on
java-latest-openjdk-javadoc.x86_64 : OpenJDK 19 API documentation
java-latest-openjdk-javadoc-zip.x86_64 : OpenJDK 19 API documentation compressed in a single archive
java-latest-openjdk-jmods.x86_64 : JMods for OpenJDK 19
java-latest-openjdk-jmods-fastdebug.x86_64 : JMods for OpenJDK 19 optimised with full debugging on
java-latest-openjdk-jmods-slowdebug.x86_64 : JMods for OpenJDK 19 unoptimised with full debugging on
java-latest-openjdk-slowdebug.x86_64 : OpenJDK 19 Runtime Environment unoptimised with full debugging on
java-latest-openjdk-src.x86_64 : OpenJDK 19 Source Bundle
java-latest-openjdk-src-fastdebug.x86_64 : OpenJDK 19 Source Bundle for packages with debugging on and optimisation
java-latest-openjdk-src-slowdebug.x86_64 : OpenJDK 19 Source Bundle for packages with debugging on and no optimisation
java-latest-openjdk-static-libs.x86_64 : OpenJDK 19 libraries for static linking
java-latest-openjdk-static-libs-fastdebug.x86_64 : OpenJDK 19 libraries for static linking optimised with full debugging
: on
java-latest-openjdk-static-libs-slowdebug.x86_64 : OpenJDK 19 libraries for static linking unoptimised with full debugging
: on
openjdk-asmtools-javadoc.noarch : Javadoc for openjdk-asmtools
prometheus-jmx-exporter-openjdk11.noarch : OpenJDK 11 binding for prometheus-jmx-exporter
=================================================== Name Matched: jdk ====================================================
openjdk-asmtools.noarch : To develop tools create proper & improper Java '.class' files
================================================== Summary Matched: jdk ==================================================
icedtea-web.x86_64 : Additional Java components for OpenJDK - Java browser plug-in and Web Start implementation
jmc.x86_64 : JDK Mission Control is a profiling and diagnostics tool
jmc-core.noarch : Core API for JDK Mission Control
现在,使用以下命令安装OpenJDK 11:
dnf install java-11-openjdk-devel.x86_64
安装完成后,可以通过运行以下命令来验证已安装的Java版本:
java -version
您应该看到以下输出:
openjdk version "11.0.5" 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)
安装OpenJDK 8
某些基于Java的应用程序仅在OpenJDK 8上支持。在这种情况下,您将需要在服务器上安装OpenJDK 8。您可以使用以下命令轻松安装OpenJDK 8:
dnf install java-1.8.0-openjdk-devel
安装Java之后,可以使用以下命令检查Java的安装版本:
java -version
您应该看到以下输出:
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
在Java版本之间切换
您还可以在单个系统中安装Java的多个版本,并根据需要在它们之间切换。
您可以运行以下命令,将Java版本从OpenJDK 8切换到OpenJDK 11,如下所示:
alternatives --config java
系统将要求您提供所需的Java版本,如下所示:
There are 2 programs which provide 'java'.
Selection Command
-----------------------------------------------
1 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.5.10-0.el8_0.x86_64/bin/java)
*+ 2 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el8_0.x86_64/jre/bin/java)
Enter to keep the current selection[+], or type selection number: 1
输入1,然后按Enter键以切换Java版本。
更改后,请使用以下命令再次检查当前活动的Java版本:
java -version
安装Oracle Java 8
首先,您需要登录Oracle Java网站并转到Oracle Java 8 JDK下载页面。接下来,接受许可协议并下载jdk-8u231-linux-x64.rpm软件包。
下载完成后,运行以下命令来安装Oracle OpenJDK 8:
dnf localinstall jdk-8u231-linux-x64.rpm
安装Oracle OpenJDK 8后,可以使用以下命令验证Java版本:
java -version
您应该看到以下输出:
java version "1.8.0_231" Java(TM) SE Runtime Environment (build 1.8.0_231-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
结论
现在就这样。我们学习了如何在CentOS 8中安装不同版本的Java。现在,您可以轻松地安装所需的Java版本并根据需要在它们之间进行切换。