在Linux系统中安装Java是开发、运维及企业应用中的常见需求,Java运行环境(JRE)或开发工具包(JDK)的安装方式因需求不同而有所差异,本文将详细介绍通过包管理器、手动下载安装及SDKMAN!工具三种主流方法,并涵盖环境变量配置、版本验证及常见问题解决。
通过包管理器安装(适合新手,自动处理依赖)
Linux主流发行版如Ubuntu/Debian、CentOS/RHEL等均自带包管理器,可一键安装OpenJDK(Java开源实现),推荐无需特定商业版本的用户使用。
Ubuntu/Debian系统(使用apt)
-
更新软件包列表:
sudo apt update
-
安装OpenJDK(以JDK 11为例,常用版本还有8、17等):
sudo apt install openjdk-11-jdk
若仅需运行环境(JRE),可安装
openjdk-11-jre
。 -
验证安装:
java -version javac -version # 验证编译器是否安装(JDK包含)
CentOS/RHEL/Fedora系统(使用yum/dnf)
- CentOS/RHEL 7及以下(yum):
sudo yum install java-11-openjdk-devel
- CentOS/RHEL 8+/Fedora(dnf):
sudo dnf install java-11-openjdk-devel
不同发行版包管理器命令对比
发行版 | 包管理器 | 安装JDK 11命令 | 安装JRE命令 |
---|---|---|---|
Ubuntu/Debian | apt | sudo apt install openjdk-11-jdk |
sudo apt install openjdk-11-jre |
CentOS 7 | yum | sudo yum install java-11-openjdk-devel |
sudo yum install java-11-openjdk |
CentOS 8+ | dnf | sudo dnf install java-11-openjdk-devel |
sudo dnf install java-11-openjdk |
注意:包管理器安装会自动配置环境变量(如
JAVA_HOME
),若未生效可手动配置(见后文“环境变量配置”部分)。
手动安装JDK(适合特定版本需求,如Oracle JDK)
若需安装Oracle JDK(商业版,需接受许可协议)或OpenJDK的特定构建版本(如Adoptium Temurin),可通过官网下载压缩包手动安装。
下载JDK压缩包
- 访问Oracle JDK官网或OpenJDK官网(推荐Adoptium,提供免费预构建版本),选择对应系统架构(如Linux x64)的.tar.gz包。
解压并移动到安装目录
# 创建安装目录(通常放在/usr/local/java) sudo mkdir -p /usr/local/java # 解压下载的.tar.gz包(假设文件在~/Downloads/) tar -zxvf jdk-11.0.12_linux-x64_bin.tar.gz -C /usr/local/java # 重命名解压目录(可选,便于管理) sudo mv /usr/local/java/jdk-11.0.12 /usr/local/java/jdk11
配置环境变量
编辑/etc/profile
(全局配置,所有用户生效)或~/.bashrc
(当前用户生效),添加以下内容:
export JAVA_HOME=/usr/local/java/jdk11 # JDK安装路径 export PATH=$JAVA_HOME/bin:$PATH # 将JDK bin目录加入PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # 类路径(可选,JDK开发需)
提示:若编辑
~/.bashrc
,仅对当前终端生效,需执行source ~/.bashrc
或重新打开终端。
生效配置并验证
source /etc/profile # 或 source ~/.bashrc java -version javac -version
若输出版本信息,说明安装成功。
使用SDKMAN!安装(适合多版本管理)
SDKMAN!是一个多版本Java管理工具,可快速安装、切换不同Java版本(如JDK 8/11/17),适合需要频繁切换开发环境的开发者。
安装SDKMAN!
curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh" # 初始化
查看并安装Java版本
sdk list java # 查看可安装的Java版本(如Adoptium、Oracle等) sdk install java 11.0.12-tem # 安装指定版本(以Adoptium Temurin 11为例)
切换Java版本
sdk use java 11.0.12-tem # 切换到已安装的版本 sdk default java 17.0.3-tem # 设置默认版本
验证安装
java -version sdk current java # 查看当前使用的Java版本
环境变量配置通用问题解决
无论通过哪种方式安装,若java -version
提示“未找到命令”,多为环境变量未配置或配置错误,可按以下步骤排查:
- 检查
JAVA_HOME
是否正确指向JDK安装目录:echo $JAVA_HOME # 输出应为JDK路径(如/usr/local/java/jdk11)
- 检查
PATH
是否包含$JAVA_HOME/bin
:echo $PATH # 确认包含.../jdk11/bin...
- 若修改了配置文件,需执行
source
命令生效(如source /etc/profile
)。
相关问答FAQs
Q1: 如何在Linux中切换已安装的多个Java版本?
A1: 切换方式取决于安装方法:
- 包管理器安装:使用
update-alternatives
工具(需先通过包管理器安装多个版本,如sudo apt install openjdk-8-jdk
后,执行sudo update-alternatives --config java
选择版本)。 - 手动安装:修改环境变量中的
JAVA_HOME
和PATH
,优先级高的路径(如~/.bashrc
中的配置)会覆盖全局配置,或通过符号链接实现切换(如sudo ln -sf /usr/local/java/jdk17/bin/java /usr/bin/java
)。 - SDKMAN!安装:直接使用
sdk use java 版本号
或sdk default java 版本号
切换,SDKMAN!会自动管理路径。
Q2: 如何完全卸载Linux中的Java?
A2: 卸载方式需匹配安装方法:
- 包管理器安装:
- Ubuntu/Debian:
sudo apt purge openjdk-11-jdk openjdk-11-jre
(purge
会删除配置文件) - CentOS/RHEL:
sudo yum remove java-11-openjdk java-11-openjdk-devel
- Ubuntu/Debian:
- 手动安装:删除JDK安装目录(如
sudo rm -rf /usr/local/java/jdk11
)并清理环境变量中的相关配置(编辑/etc/profile
或~/.bashrc
删除JAVA_HOME
、PATH
中的Java路径)。 - SDKMAN!安装:执行
sdk uninstall java 版本号
(如sdk uninstall java 11.0.12-tem
),并清理默认配置(若不再使用SDKMAN!,可删除~/.sdkman
目录)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/19675.html