Java是最流行的编程语言之一,用于建立不同类型的应用程序和系统。
Java有两种不同的实现方式,OpenJDK和Oracle Java,它们之间几乎没有区别,只是Oracle Java有一些额外的商业功能。Oracle Java许可证只允许软件的非商业性使用,如个人使用和开发使用。OpenJDK是Java平台的一个开源实现。
默认的CentOS 8软件库包括最新的两个主要Java LTS版本,即Java 8和Java 11。
在本教程中,我们将介绍如何在CentOS 8上安装一个或多个Java(OpenJDK)版本,以及如何通过替代方案设置默认的Java。
$ sudo dnf install java-11-openjdk-devel
安装完成后,你可以通过检查Java版本来验证它。
$ java -version
输出结果应该是这样的。
openjdk version "11.0.4" 2019-07-16 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.4+11-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.4+11-LTS, mixed mode, sharing)
这就是了! 您已经成功地在您的 CentOS 8 系统上安装了 Java。
CentOS 8 还支持 OpenJDK 的无头版本,它提供了执行没有图形用户界面的应用程序所需的最小 Java 运行时间(不支持键盘、鼠标和显示系统)。这个版本更适用于服务器应用程序,因为它的依赖性更少,使用的系统资源也更少。
要只安装无头的OpenJDK 11,请键入。
$ sudo dnf install java-11-openjdk-headless
如果你已经安装了 java-11-openjdk-devel,无头包将作为依赖关系被安装。
$ sudo dnf install java-1.8.0-openjdk-devel
通过检查Java的版本来验证安装。
$ java -version
输出结果应该是这样的。
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)
对于最小的Java运行时,安装java-1.8.0-openjdk-headless包。
$ java -version
如果你想改变默认版本,请使用alternative命令。
$ sudo alternatives --config java
输出将看起来像下面这样。
There are 2 programs which provide 'java'.
Selection Command
-----------------------------------------------
1 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.4.11-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.222.b10-0.el8_0.x86_64/jre/bin/java)
Enter to keep the current selection[+], or type selection number:
所有安装的Java版本的列表将被打印在屏幕上。输入你想作为默认版本的号码,然后按 Enter。
你可能还想改变默认的javac版本。
$ sudo alternatives --config java
javac是一个用于编译Java程序的命令工具。
JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk"
要使更改在你当前的 shell 上生效,你可以注销并登录,或者使用 source 命令。
source /etc/profile.d/java.sh
验证 JAVA_HOME 环境变量的设置是否正确。
$ echo $JAVA_HOME
输出结果应显示 Java 的安装路径。
/usr/lib/jvm/java-1.8.0-openjdk
你也可以在应用程序配置、systemd单元文件或启动程序时在命令行中设置JAVA_HOME。
例如,若要使用 Java 8 运行 Maven,您需要键入。
$ JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk mvn --version
...
Java version: 1.8.0_222, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el8_0.x86_64/jre
...