在CentOS/RHEL/Fedora上设置JAVA_HOME

时间:2020-02-23 14:30:59  来源:igfitidea点击:

我见过很多关于如何在CentOS/Fedora/RHEL Linux发行版上设置JAVA_HOME的问题。 JAVA_HOME用于设置Linux或者Windows系统上Java安装的路径。 JAVA_HOME只是一个约定,通常由Java EE和Tomcat服务器使用,并使用诸如Gradle,Ant和Maven之类的构建工具来查找Java的安装位置。

在本指南中,我们将介绍一种在CentOS/Fedora/RHEL Linux系统上设置JAVA_HOME的简单且推荐的方法。我们假设我们已经安装了Java,然后才能设置" JAVA_HOME"。

在CentOS 7,Fedora,RHEL/CentOS 8上安装Java。

在CentOS/Fedora/RHEL上设置JAVA_HOME

如果我们安装了多个Java版本,则可能需要设置默认版本,然后才能在CentOS/Fedora/RHEL系统上配置JAVA_HOME。为此,请使用以下命令。

sudo alternatives --config java

这将提示我们确认要设置的默认Java版本。

There are 2 programs which provide 'java'.

  Selection    Command
----------------------------------------------
*  1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el7_6.x86_64/jre/bin/java)
 + 2           java-1.7.0-openjdk.x86_64 (/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.211-2.6.17.1.el7_6.x86_64/jre/bin/java)

Enter to keep the current selection[+], or type selection number: 1

我们可以在.bash_profile,.bashrc文件中为/etc/profile中的所有Global用户设置JAVA_HOME,或者在/etc/profile.d/目录中作为bash函数设置。

将以下行添加到上述任何bash点文件中。

export JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(which javac)))))

然后获取文件。假设我们将此添加到~/.bashrc中,将运行:

source ~/.bashrc

确认环境变量值。

$echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el7_6.x86_64

我们还需要将Java/bin目录添加到PATH中。

export PATH=$PATH:$JAVA_HOME/bin

可以使用以下命令设置Java CLASSPATH:

export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

因此,完整设置应包含以下几行:

export JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(which javac)))))
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

这是我的截图。

不要忘记提供文件或者注销并重新登录。

# Examples
$source ~/.bashrc
$source ~/.bash_profile
$source /etc/profile
$source /etc/profile.d/java.sh

然后确认:

$echo $JAVA_HOME
$echo $PATH
$echo $CLASSPATH

应用程序应找到Java安装目录。