使用YUM/DNF仓库安装(推荐)
这是最简单、最推荐的安装方式,YUM(Yellowdog Updater Modified)是CentOS的包管理器,可以自动处理依赖关系,简化安装和更新过程。
步骤1:更新系统
在安装任何新软件之前,建议先更新系统软件包到最新版本,以确保所有依赖项都是最新的。
sudo yum update -y
步骤2:搜索并安装OpenJDK 1.8
CentOS的官方仓库提供了OpenJDK,这是Oracle JDK的一个开源实现,完全兼容且免费使用。
搜索可用的Java 1.8相关的包:
yum search java-1.8 | grep openjdk
你将看到几个相关的包,其中最重要的是:
java-1.8.0-openjdk
:Java运行时环境(JRE),用于运行Java应用程序。java-1.8.0-openjdk-devel
:Java开发工具包(JDK),包含了编译器(javac
)等开发工具。
为了进行完整的开发,我们需要同时安装这两个包:
sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
步骤3:验证安装
安装完成后,通过以下命令验证Java版本:
java -version
输出应类似于:
openjdk version "1.8.0_322"
OpenJDK Runtime Environment (build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)
检查Java编译器(javac
)是否可用:
javac -version
输出应为:javac 1.8.0_322
。
步骤4:配置JAVA_HOME
环境变量
许多Java应用程序和工具依赖于JAVA_HOME
环境变量来定位JDK的安装目录,我们需要手动配置它。
找到JDK的安装路径,通过YUM安装的OpenJDK位于/usr/lib/jvm/
目录下,我们可以使用以下命令来确定确切路径:
dirname $(readlink -f $(which java))
输出通常会是:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64/jre/bin
JAVA_HOME
应指向JDK的根目录,即去掉/jre/bin
部分,路径为:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64
为了对所有用户生效,我们在/etc/profile.d/
目录下创建一个新的脚本文件:
sudo vi /etc/profile.d/java8.sh
在文件中添加以下内容(请将路径替换为你系统上查到的实际路径):
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-2.el8_5.x86_64 export PATH=$PATH:$JAVA_HOME/bin
保存并退出编辑器,让配置立即生效:
source /etc/profile.d/java8.sh
验证JAVA_HOME
是否设置成功:
echo $JAVA_HOME
手动下载并安装
当你需要安装特定版本的Oracle JDK,或者无法使用YUM仓库时,可以采用手动安装的方式。
步骤1:下载JDK二进制包
访问OpenJDK或Oracle官网的归档页面,下载适用于Linux的JDK 1.8 .tar.gz
包,可以使用wget
命令下载(请以官网提供的实际链接为准):
wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz
注意:此为JDK 11的示例链接,请务必寻找JDK 1.8的链接。
步骤2:解压并安装
创建一个统一的目录来存放Java版本,例如/usr/java
。
sudo mkdir -p /usr/java
将下载的压缩包解压到该目录:
sudo tar -xzf jdk-8u_version-linux-x64.tar.gz -C /usr/java/
解压后,会在/usr/java/
下生成一个类似jdk1.8.0_version
的文件夹。
步骤3:配置环境变量
与方法一类似,我们需要设置JAVA_HOME
和PATH
,创建并编辑/etc/profile.d/java8_manual.sh
文件:
sudo vi /etc/profile.d/java8_manual.sh
路径请根据你的实际情况修改):
export JAVA_HOME=/usr/java/jdk1.8.0_version export PATH=$PATH:$JAVA_HOME/bin
保存后,执行source
命令使配置生效:
source /etc/profile.d/java8_manual.sh
步骤4:使用alternatives
管理系统版本
手动安装后,建议使用alternatives
工具将新安装的Java注册到系统中,便于管理和切换。
sudo alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_version/bin/java 2 sudo alternatives --install /usr/bin/javac javac /usr/java/jdk1.8.0_version/bin/javac 2
之后,你可以使用 sudo alternatives --config java
来切换系统中默认的Java版本。
两种安装方法的比较
特性 | YUM/DNF 安装 | 手动安装 |
---|---|---|
便捷性 | 非常高,一键安装,自动处理依赖 | 较低,需要手动下载、解压、配置 |
版本灵活性 | 有限,依赖于仓库提供的版本 | 极高,可以安装任何官方发布的版本 |
系统管理 | 与系统包管理器完美集成,更新和卸载方便 | 需要手动配置环境变量和路径,管理稍复杂 |
更新维护 | 通过yum update 即可升级 | 需要手动下载新版本并重新配置 |
对于绝大多数用户,推荐使用YUM方法,因为它更简单、更符合CentOS的管理哲学。
相关问答 (FAQs)
问1:我需要在同一台服务器上安装多个版本的JDK(如JDK 8和JDK 11)并随时切换,该如何操作?
答: 使用alternatives
工具是管理多个Java版本的最佳方式,无论你是通过YUM还是手动方式安装,都可以将每个版本的Java可执行文件注册到alternatives
系统中。
- 安装多个版本:按照上述方法,安装JDK 1.8和JDK 11。
- 注册版本:为每个版本的
java
和javac
执行alternatives --install
命令,注意,每个版本应使用不同的优先级数字,数字越大,优先级越高。# 示例:注册JDK 8和JDK 11 sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-1.8.0-openjdk/bin/java 1 sudo alternatives --install /usr/bin/java java /usr/java/jdk-11/bin/java 2
- 切换版本:执行
sudo alternatives --config java
,系统会列出已注册的Java版本,输入你希望切换到的版本前面的数字即可。javac
的切换同理。
问2:我已经安装了JDK,但在终端输入java -version
时提示“command not found”,这是为什么?
答: 这个问题几乎总是由PATH
环境变量配置不正确引起的,系统的PATH
变量中不包含JDK的bin
目录。
:执行 echo $PATH
,查看输出结果中是否包含你的JDK路径,例如/usr/java/jdk1.8.0_version/bin
或/usr/lib/jvm/java-1.8.0-openjdk/bin
。- 检查配置文件:确认你之前在
/etc/profile.d/
下创建的.sh
无误,特别是export PATH=$PATH:$JAVA_HOME/bin
这一行。 - 重新加载配置:如果修改了配置文件,请务必执行
source /etc/profile.d/your_script_name.sh
或重新登录终端,让新的PATH
设置生效。 :同时执行 echo $JAVA_HOME
,确保该变量也已正确设置,如果JAVA_HOME
未设置,那么PATH
中的$JAVA_HOME/bin
也无法被正确解析。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复