【Linux】安装 JDK 并配置环境变量

2,455 阅读3分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

本文同时参与「掘力星计划」,赢取创作大礼包,挑战创作激励金。

1. JDK 安装

若服务器无 JDK,则在 Linux 上使用自带的包管理器直接安装就好,使用二进制也是一个不错的选择,我用的是 CentOS 7.

1.1 yum 安装 JDK

$ yum install java-1.8.0-openjdk* -y

2. JAVA_HOME 配置

2.1 寻找 JAVA_HOME

众所周知,JAVA_HOME 是一个环境变量,我们通常用它来定位 java 可执行文件,如 javajavac

在安装 jdk 后,我们还需要在环境中定义 JAVA_HOME后文配置 hbase 的环境变量需要用到 JAVA_HOME),在终端输入如下命令,若环境中已经定义了 JAVA_HOME,那么上面的命令会将其打印出来。

$ echo $JAVA_HOME

结果什么也没有打印,可见环境中并没有定义 JAVA_HOME;那么,我们可以尝试:

$ which java

打印出了 /usr/bin/java,但这并不是很有用,因为它只是一个象征性的联系(软链接),我们进入该文件夹找到 java 文件可确认这一点:

我们为了解开这个,将使用 dirnamereadlink

$ dirname $(dirname $(readlink -f $(which javac)))

如上,在找到后,进入目标文件夹 /usr/lib/jvm 中,并使用 ll 查看当前目录。

⭐我们可以发现 java-1.8.0 -> /etc/alternatives/java_sdk_1.8.0 这个链接,就是它了!注意这个是在 CentOS 上的 JAVA_HOME 位置!

⭐网上有的教程说直接将 JAVA_HOME 指向 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64 这个目录,其实没错,这个目录才是真正的 Java 可执行目录
如下图,我们可以看出: /etc/alternatives/java_sdk_1.8.0 实际上也是个软链接(同 Windows 快捷方式),并且指向的是 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64 这个目录。所以 JAVA_HOME 不论是指向这两个中的哪一个,指向的都是同一个目录

我们可以跟踪进 java 可执行目录看看:

⭐网上还有的教程说是将 JAVA_HOME 指向 jre-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64 这个快捷方式,但是这个快捷方式指向的 jre 目录,这个目录里虽然有 java 命令,可以执行 java 程序,但是却没有 javac 命令,无法编译 java 程序,所以如果要编程的话还是直接指向 java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64,如果仅仅只是要运行程序的话,则可以指向 jre-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64

📚 对于 WindowsmacOSJava 查找 JAVA_HOME,可以参考这篇文章(超详细):www.jdon.com/51502

2.2 配置环境变量

如上内容,我们找到了 JAVA_HOME 应该指向的目标文件夹,即 Java 可执行文件夹。下面,我们开始配置环境变量。

🔥配置环境变量的目的是因为 java 命令并不是系统的系统命令,所以需要配置,以便于系统能在任何地方调用到 java 命令(简单说,就是指定一个目录,运行软件的时候,相关的程序将会按照该目录寻找相关文件)。

🔥设置变量对于一般人最实用的功能就是:不用拷贝某些 dll 文件到系统目录中了,而 path 这一系统变量就是系统搜索 dll 文件的一系列路径。

Linux 环境变量启动过程

⭐如果仅仅需要当前用户使用 Java 的话,需要编辑 ~/.bashrc 文件,在文件中添加 JAVA_HOME 为刚才的 jdk 路径,然后保存并退出(:wq):

$ vi ~/.bashrc
---
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64

⭐如果想要全体用户都可以使用 java 的话(推荐),需要修改 /etc/profile 文件,添加 JAVA_HOME

[root@localhost]$ vi /etc/profile

进入 vim 编辑器后,在文件末尾添加以下内容,保存后退出:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

🔥 export 命令的作用:在 shell 中执行程序时,shell 会提供一组环境变量,export 可新增,修改或删除环境变量,供后续执行的程序使用。不过执行 export 的效力仅限于此次用户登陆操作。若如以上在 /etc/profile 文件中使用 export 配置环境变量,则可全局生效(下次登录仍有效,无需再配置)!

配置后不要高兴得太早,一定要记得执行如下命令使得 /etc/profile 文件配置生效(. 与 /etc/profile 之间有空格)!!!

$. /etc/profile

3. 验证配置环节

接下来就是激动人心的验证安装与验证配置是否成功的环节了!

1)验证 java 是否安装成功

$ java -version

2)验证 JAVA_HOME

$ echo $JAVA_HOME

3)验证 jdk 是否安装成功

$ javac

OHHHHHHHHHHHH!成功了!

希望本文对你有所帮助🧠
欢迎在评论区留下你的看法🌊,我们一起讨论与分享🔥