在Linux系统中安装JDK(Java Development Kit)是Java开发环境搭建的基础步骤,根据Linux发行版的不同和个人需求,可选择多种安装方式,如包管理器安装、手动压缩包安装或SDKMAN等工具管理,以下是详细的安装步骤及注意事项。
安装前准备工作
-
检查系统架构
Linux系统分为32位(i386/i686)和64位(x86_64),需通过命令确认架构:uname -m
输出
x86_64
则选择64位JDK,i686
选择32位(目前主流系统为64位)。 -
卸载旧版本JDK(如有)
避免版本冲突,先检查是否已安装JDK:java -version javac -version
若已安装,通过包管理器卸载(以Ubuntu为例):
sudo apt purge openjdk-* # 卸载OpenJDK
或手动删除安装目录(如手动安装的JDK路径为
/usr/lib/jvm/java-11-openjdk-amd64
)。
常见安装方法
方法1:通过包管理器安装(推荐新手)
包管理器(如apt
、yum
)可自动依赖管理,适合快速安装,但版本可能非最新。
(1)基于Debian/Ubuntu系统(使用apt)
- 更新软件列表:
sudo apt update
- 安装OpenJDK(以JDK 11为例,可替换为8、17等版本):
sudo apt install openjdk-11-jdk
- 验证安装:
java -version javac -version
(2)基于CentOS/RHEL/Fedora系统(使用yum/dnf)
- 安装EPEL仓库(若未安装):
sudo yum install epel-release # CentOS 7及以下 sudo dnf install epel-release # Fedora/CentOS 8+
- 安装OpenJDK(以JDK 17为例):
sudo yum install java-17-openjdk-devel # CentOS 7 sudo dnf install java-17-openjdk-devel # Fedora/CentOS 8+
方法2:手动下载压缩包安装(灵活控制版本)
适用于需要特定版本(如Oracle JDK)或包管理器不可用的情况。
步骤1:下载JDK压缩包
- 官网下载:访问Oracle JDK官网或OpenJDK官网,选择对应系统架构的压缩包(如
tar.gz
)。 - 命令行下载(以OpenJDK 17为例):
wget https://download.java.net/java/GA/jdk17/0d483333a00540d886896b90286616846/36/GPL/openjdk-17_linux-x64_bin.tar.gz
步骤2:解压并移动到安装目录
- 创建JDK安装目录(通常为
/usr/lib/jvm
):sudo mkdir -p /usr/lib/jvm
- 解压到该目录:
sudo tar -zxvf openjdk-17_linux-x64_bin.tar.gz -C /usr/lib/jvm
- 重命名目录(方便管理):
sudo mv /usr/lib/jvm/jdk-17 /usr/lib/jvm/java-17-openjdk
步骤3:配置环境变量
- 编辑
/etc/profile
(全局配置,所有用户生效)或~/.bashrc
(当前用户生效):sudo vim /etc/profile
- 添加以下内容(路径需与实际安装目录一致):
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
- 保存后使配置生效:
source /etc/profile
步骤4:创建软链接(可选)
为方便命令调用,可创建java
和javac
的软链接:
sudo update-alternatives --install /usr/bin/java java $JAVA_HOME/bin/java 1 sudo update-alternatives --install /usr/bin/javac javac $JAVA_HOME/bin/javac 1
方法3:使用SDKMAN管理多版本JDK(适合开发者)
SDKMAN(Software Development Kit Manager)可一键安装、切换多个JDK版本,适合需要频繁切换开发环境的用户。
步骤1:安装SDKMAN
curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh"
步骤2:安装JDK
- 查看可用JDK版本:
sdk list java
- 安装指定版本(如OpenJDK 17):
sdk install java 17.0.2-open
- 切换JDK版本:
sdk use java 17.0.2-open
不同安装方法对比
方法 | 优点 | 缺点 | 适用场景 |
---|---|---|---|
包管理器安装 | 操作简单,自动依赖管理 | 版本可能滞后,无法自定义安装路径 | 新手,快速部署 |
手动压缩包安装 | 版本灵活,可自定义路径,支持Oracle JDK | 需手动配置环境变量,步骤稍多 | 需要特定版本或企业环境 |
SDKMAN管理 | 支持多版本切换,管理方便 | 需先安装SDKMAN,占用一定磁盘空间 | 开发者,多版本需求 |
常见问题排查
-
环境变量配置后不生效
- 检查配置文件路径是否正确(
/etc/profile
或~/.bashrc
)。 - 确认执行了
source
命令重新加载配置。 - 检查
JAVA_HOME
路径是否与JDK安装路径一致,避免拼写错误。
- 检查配置文件路径是否正确(
-
java -version
显示版本与安装版本不符- 检查系统环境变量中是否存在多个
JAVA_HOME
或PATH
冲突(可通过echo $JAVA_HOME
和echo $PATH
查看)。 - 若使用
update-alternatives
,可通过sudo update-alternatives --config java
切换默认版本。
- 检查系统环境变量中是否存在多个
FAQs
Q1:如何查看Linux系统已安装的所有JDK版本?
A1:可通过以下命令查看:
- 使用
update-alternatives
(适用于手动安装或包管理器安装后配置了软链接):sudo update-alternatives --config java
- 或直接查看
/usr/lib/jvm
目录(存放JDK的默认位置):ls /usr/lib/jvm
- 若已安装SDKMAN,可通过
sdk list java
查看所有已安装版本。
Q2:安装JDK后提示“-bash: java: command not found”,如何解决?
A2:主要原因是环境变量未正确配置或PATH
中未包含JDK的bin
目录,解决步骤如下:
- 检查
JAVA_HOME
是否设置:echo $JAVA_HOME
若未输出或路径错误,需编辑
/etc/profile
或~/.bashrc
,添加正确的JAVA_HOME
和PATH
配置,并执行source
命令生效。 - 检查
PATH
是否包含$JAVA_HOME/bin
:echo $PATH
若未包含,需在
PATH
变量中添加$JAVA_HOME/bin
(注意用冒号分隔路径)。 - 若为临时生效,可手动执行:
export PATH=/usr/lib/jvm/java-17-openjdk/bin:$PATH
但建议永久配置到配置文件中,避免重启后失效。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/19607.html