如何在Rocky/Alma Linux 9 上安装 Java 17?

简介: Java 是一种高级的、基于类的、面向对象的编程语言,旨在尽可能减少实现依赖项。Java 是由 Sun Microsystems (现在是 Oracle 的子公司)于 1995 年 开发的。James Gosling 被称为 Java 之父。

在本指南中,我们将探讨如何在 Rocky Linux 9 中安装 Java Runtime Environment (JRE) 和 Java Developer Kit (JDK),本指南也适用于任何基于 RHEL 9 的系统。

许多软件都需要 Java 和 JVM(Java 的虚拟机),包括 Tomcat、 Jetty、 Glassfish、 Cassandra 和 Jenkins。

Java 是一种高级的、基于类的、面向对象的编程语言,旨在尽可能减少实现依赖项。Java 是由 Sun Microsystems (现在是 Oracle 的子公司)于 1995 年 开发的。James Gosling 被称为 Java 之父。

先决条件

  • 最新的 Rocky Rocky Linux 9 系统
  • 具有 sudo 访问权限的服务器或用户的 root 访问权限
  • 从服务器访问 Internet

步骤概览

  • 确保服务器是最新的
  • 安装java
  • 测试安装
  • 切换多个 Java 版本
  • 配置环境变量

确保服务器是最新的

在继续之前,让我们确保我们的服务器是最新的,并且所有的包都是最新版本,使用这些命令来实现这一点:

sudo dnf -y update

如果有要升级的软件包,上述命令可能需要几分钟。

让我们也安装一些我们可能需要的常用软件包,我使用 vim 文本编辑器和 wget 下载软件包,请确保使用以下命令安装它们:

sudo dnf -y install vim wget

安装 Java

使用以下命令检查您的系统中是否安装了 java。

$ java -version
-bash: java: command not found

如果您看到 java: command not found ,则表示未安装 java,如果安装了 java,该命令将打印出 java 版本

默认 Rocky Linux Repos 中可用的 openjdk 版本不是最新的,获取最新信息https://jdk.java.net/17/

使用此 curl 命令下载:

curl -LO https://download.java.net/java/GA/jdk17.0.1/2a2082e5a09d4267845be086888add4f/12/GPL/openjdk-17.0.1_linux-x64_bin.tar.gz

这是我服务器上的输出:

$ curl -LO https://download.java.net/java/GA/jdk17.0.1/2a2082e5a09d4267845be086888add4f/12/GPL/openjdk-17.0.1_linux-x64_bin.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  178M  100  178M    0     0  76.3M      0  0:00:02  0:00:02 --:--:-- 76.3M

该文件将被下载到当前目录 openjdk-17.0.1_linux-x64_bin.tar.gz

$ ls
openjdk-17.0.1_linux-x64_bin.tar.gz

让我们用 tar 命令解压包

tar -xzf openjdk-17.0.1_linux-x64_bin.tar.gz

现在让我们将提取的内容移动到 /opt 目录

sudo mv jdk-17.0.1/ /opt

现在内容已被提取并添加到 /opt 目录中,我们需要导出 Java 主目录,以便 Java 应用程序知道 JDK 安装在哪里,并更新路径以在 java 二进制目录中包含可执行文件,这样我们就可以在 java 不指定完整路径的情况下使用该命令。

.bashrc 让我们在文件中设置这些变量,使用文本编辑器打开文件,我使用的是 vim:

vim ~/.bashrc

现在添加这些行来设置 Java 主目录并包含可执行文件二进制目录

export JAVA_HOME=/opt/jdk-17.0.1
export PATH=$PATH:$JAVA_HOME/bin

使用这些设置后,您将必须注销然后登录或使用以下命令重新加载登录 shell:

source ~/.bashrc

通过检查版本确认 Java 现在工作正常:

$ java -version
openjdk version "17.0.1" 2021-10-19
OpenJDK Runtime Environment (build 17.0.1+12-39)
OpenJDK 64-Bit Server VM (build 17.0.1+12-39, mixed mode, sharing)

为了验证 JDK 是否安装正确,我们将检查 javac 的版本,它是 Java 编译器。

$ javac -version
javac 17.0.1

测试安装

让我们通过创建一个打印出来的简单脚本来测试 Java 17 是否在此步骤中正确安装 Java is installed properly。

创建目录并切换到它

mkdir simple-app
cd simple-app

我使用 vim 在我的系统中创建和编辑文本文件,在此步骤中使用您选择的文本编辑器,我将 Simple.java 使用以下命令创建一个文件:

vim Simple.java

将这些内容添加到文件中

public class Simple{
   public static void main(String[] args) {
      System.out.println("Citizix - Java is installed properly");
   }
}

现在我们已经创建了我们的程序,我们需要使用 javac 编译器将 Java 源代码编译成字节码(类文件)。

javac Simple.java

您将获得一个名为 的新文件 Simple.class,它是已编译的 Java 类文件。

$ ls
Simple.class  Simple.java

上面的命令只会将 Java 源代码编译成字节码,为了运行程序,我们使用类文件的名称作为参数运行 java 命令。

$ java Simple

如果一切正常,您将Citizix - Java is installed properly在屏幕上看到一条消息“ ”。

$ java Simple
Citizix - Java is installed properly

配置环境变量

一些 Java 应用程序需要 JAVA_HOME 环境变量才能正常运行。有些程序的执行方式非常具体,如果 JAVA_HOME 没有设置,你会得到一个错误,设置 JAVA_HOME 将防止出现此问题。

要检查存在哪些 Java 安装和路径,请使用以下命令:

$ which java
/opt/jdk-17.0.1/bin/java

在我的情况下,我得到的 Java 安装二进制路径是这样的 /opt/jdk-17.0.1/bin/java

我们将 /etc/environment 在所有应用程序都可以访问的环境文件中设置此路径。

用 vim 打开文件:

sudo vim /etc/environment

现在我们需要添加一行将 Java 主页导出到文件中,如下所示 export JAVA_HOME=... ,使值成为我们为 Java 安装获得的路径:

export JAVA_HOME=/opt/jdk-17.0.1/bin/java

该文件会将 OpenJDK 17 的 JAVA_HOME 路径设置为系统中所有用户的环境变量。

要应用更改,请运行以下命令。

source /etc/environment

要验证是否已应用路径变量,请运行以下命令。

echo $JAVA_HOME

该路径应设置为您在上面复制的 OpenJDK 17 的路径。这是我的情况下的价值:

$ echo $JAVA_HOME
/opt/jdk-17.0.1/bin/java

从现在开始,您不必在每次使用 Java 程序时都设置 JAVA_HOME 路径。此外,如果您想使用其他 OpenJDK 版本而不是 17,请相应地调整路径。

目录
相关文章
|
9天前
|
缓存 Linux 测试技术
安装【银河麒麟V10】linux系统--并挂载镜像
安装【银河麒麟V10】linux系统--并挂载镜像
59 0
|
9天前
|
Linux C语言
linux yum安装ffmpeg 图文详解
linux yum安装ffmpeg 图文详解
28 0
|
9天前
|
NoSQL Linux Redis
linux 下和win下安装redis 并添加开机自启 图文详解
linux 下和win下安装redis 并添加开机自启 图文详解
15 0
|
9天前
|
Linux
linux yum 安装rar和unrar
linux yum 安装rar和unrar
34 0
|
2天前
|
关系型数据库 MySQL Linux
Linux联网安装MySQL Server
Linux联网安装MySQL Server
12 0
|
17天前
|
Ubuntu Linux 虚拟化
【Linux】ubuntu安装samba服务器
【Linux】ubuntu安装samba服务器
|
17天前
|
NoSQL Linux Redis
Linux安装Redis
Linux安装Redis
26 0
|
1月前
|
网络协议 Java Linux
Java 开发常用的 Linux 命令知识积累
Java 开发常用的 Linux 命令知识积累
37 0
|
缓存 Java 关系型数据库
Java开发必备linux命令集锦
管道符“|”将两个命令隔开,左边命令的输出作为右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推 文件管理 cp 复制文件或目录cp [options] source destcp [options] source... directory -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。
1263 0