Linux【8】-软件管理-9-软件安装10-CentOS8安装java

Java是用于构建不同类型的应用程序和系统的最流行的编程语言之一。

Java有两种不同的实现,OpenJDK和Oracle Java:

  1. 它们之间几乎没有区别
  2. 除了Oracle Java有一些额外的商业特性。Oracle Java许可证只允许非商业用途的软件,如个人使用和开发用途。
  3. OpenJDK是Java平台的开源实现。

默认的CentOS 8存储库包括最新的两个主要Java LTS版本,Java 8和Java 11。

在本教程中,我们将解释如何在CentOS 8上安装一个或多个Java (OpenJDK)版本,以及如何通过其他选项设置默认Java。

一、安装OpenJDK 11

一般建议安装最新的Java LTS版本(JDK 11)。一些基于Java的应用程序可能需要特定版本的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)

证明已经在centos8上成功安装了java8

CentOS 8还支持一个无头版本的OpenJDK,该版本提供了在没有图形用户界面(没有键盘、鼠标和显示系统支持)的情况下执行应用程序所需的最小Java运行时。这个版本更适合服务器应用程序,因为它的依赖关系更少,使用的系统资源也更少。

只安装无头(headless)的OpenJDK 11类型:

sudo dnf install java-11-openjdk-headless

如果您已经安装了java-11-openjdk-devel,则无头包将作为依赖项安装。

二、安装OpenJDK 8

Java 8,以前的Java LTS版本,仍然被广泛支持和使用。如果你的应用程序需要Java 8,你可以通过输入以下命令来安装它:

sudo dnf install java-1.8.0-openjdk-devel

确认已安装

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默认版本

如果在CentOS系统上安装了多个Java版本,则可以使用替代系统来设置在终端中输入Java时将使用哪个Java版本。

要检查Java版本设置为默认版本,输入:

java -version

If you want to change the default version, use the alternatives command:

sudo alternatives --config java

The output will look something like below:

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”。

You may also want to change the default javac version:

sudo alternatives --config javac

javac是一个用于编译Java程序的命令实用程序。

四、设置JAVA_HOME环境变量

一些Java应用程序使用JAVA_HOME环境变量来确定Java安装位置,并指定应该使用哪个Java版本来运行应用程序。

要在每个用户的基础上设置JAVA_HOME变量,请将其添加到~/.bashrc 或用户登录时加载的任何其他配置文件。对于系统范围的设置,使用/etc/profile.d 中脚本。

假设你想将JAVA_HOME设置为OpenJDK 8,在文件末尾添加以下一行:

vim /etc/profile.d/java.sh

JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk"

让环境变量立马生效

source /etc/profile.d/java.sh

确认JAVA_HOME环境变量

echo $JAVA_HOME

输出:

/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
...

四、总结

CentOS 8支持两个主要的Java版本,Java 8和Java 11,可以使用dnf包管理器进行安装。

参考资料

药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn