在Linux系统上安装JDK(Java Development Kit)是进行Java开发的基础步骤,本文将详细介绍几种主流安装方法,包括使用包管理器、手动下载安装包以及通过SDKMAN工具管理,帮助不同需求的用户顺利完成安装。
安装前检查:是否已存在JDK
在安装新版本前,建议先检查系统是否已安装JDK,避免版本冲突,打开终端,执行以下命令:
java -version # 检查Java运行时版本 javac -version # 检查Java编译器版本(JDK特有)
若命令返回版本信息(如openjdk version "11.0.12"
),说明已安装JDK,可根据需要卸载旧版本(如Ubuntu/Debian系统用sudo apt remove openjdk-*
,CentOS/RHEL系统用sudo yum remove java-*
)。
主流安装方法
方法1:使用包管理器安装(适合新手,快速部署)
Linux发行版通常自带包管理器,可一键安装JDK,但版本可能非最新。
- Ubuntu/Debian系统:
更新软件源后,安装OpenJDK(以JDK 11为例):sudo apt update sudo apt install openjdk-11-jdk -y
- CentOS/RHEL系统:
使用yum
或dnf
(CentOS 8+)安装:sudo yum install java-11-openjdk-devel -y # CentOS 7及以下 # 或 sudo dnf install java-11-openjdk-devel -y # CentOS 8+
优点:操作简单,自动处理依赖关系,适合快速搭建开发环境。
缺点:版本受限于系统软件源,可能无法获取最新JDK版本。
方法2:手动下载安装包安装(适合特定版本需求)
若需安装特定版本(如Oracle JDK或最新LTS版本),可从官网下载安装包手动配置。
-
下载JDK安装包
访问Oracle JDK官网或Adoptium(Eclipse Temurin)(开源免费,推荐),选择系统架构(如Linux x64)下载.tar.gz
压缩包(如jdk-11.0.12_linux-x64_bin.tar.gz
)。 -
创建安装目录并解压
sudo mkdir -p /usr/lib/jdk # 创建安装目录 sudo tar -zxvf jdk-11.0.12_linux-x64_bin.tar.gz -C /usr/lib/jdk/ # 解压到目标目录
-
配置环境变量
编辑~/.bashrc
(当前用户)或/etc/profile
(系统全局,需root权限),添加以下内容:export JAVA_HOME=/usr/lib/jdk/jdk-11.0.12 # 替换为实际解压路径 export PATH=$JAVA_HOME/bin:$PATH
执行
source ~/.bashrc
或source /etc/profile
使配置生效。
优点:可自由选择JDK版本(如Oracle JDK、Adoptium等),适合生产环境或特定版本需求。
缺点:需手动处理依赖,环境变量配置易出错,需确保JAVA_HOME
路径正确。
方法3:使用SDKMAN管理(适合多版本开发)
SDKMAN(Software Development Kit Manager)是Linux下多版本JDK管理工具,支持一键安装、切换版本。
-
安装SDKMAN
curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh" # 初始化配置
-
安装JDK
查看可用JDK版本:sdk list java
,安装指定版本(如Adoptium JDK 17):sdk install java 17.0.3-tem # "tem"为Adoptium提供商标识
-
切换JDK版本
sdk use java 11.0.12-tem # 切换到JDK 11
优点:支持多版本共存,一键切换,避免手动配置环境变量,适合需要频繁切换JDK版本的开发者。
缺点:首次安装需下载SDKMAN工具,占用一定磁盘空间。
安装后验证
无论使用哪种方法,安装后需验证JDK是否正常工作:
java -version # 输出JDK版本信息 javac -version # 输出编译器版本(需确保包含JDK,非JRE) echo $JAVA_HOME # 检查JAVA_HOME环境变量是否正确
若命令均返回正确信息,说明安装成功。
安装方法对比
方法 | 适用场景 | 优点 | 缺点 |
---|---|---|---|
包管理器安装 | 新手快速部署,无需特定版本 | 操作简单,自动处理依赖 | 版本受限,可能非最新 |
手动下载安装包 | 需特定版本(如Oracle JDK) | 版本可控,适合生产环境 | 需手动配置环境变量,易出错 |
SDKMAN管理 | 多版本开发,频繁切换JDK | 一键切换/安装,避免环境变量问题 | 需安装额外工具,占用磁盘空间 |
相关问答FAQs
Q1:如何在Linux系统中切换已安装的多个JDK版本?
A:切换方式取决于安装方法:
- 包管理器安装:对于Debian/Ubuntu,使用
update-alternatives
工具,先注册JDK:sudo update-alternatives --install /usr/bin/java java /usr/lib/jdk/jdk-11/bin/java 1 sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jdk/jdk-11/bin/javac 1
再切换版本:
sudo update-alternatives --config java
,选择目标版本即可。 - SDKMAN安装:直接使用
sdk use java <版本>
(如sdk use java 17.0.3-tem
)。 - 手动安装:修改
~/.bashrc
或/etc/profile
中的JAVA_HOME
和PATH
变量,重新加载配置后生效。
Q2:安装JDK后,执行java -version
提示“command not found”,如何解决?
A:通常由环境变量未正确配置或PATH缺失导致,按以下步骤排查:
- 检查
JAVA_HOME
是否设置:echo $JAVA_HOME
,若为空或路径错误,需编辑配置文件(如~/.bashrc
)添加:export JAVA_HOME=/usr/lib/jdk/jdk-11.0.12 # 替换为实际路径 export PATH=$JAVA_HOME/bin:$PATH
保存后执行
source ~/.bashrc
。 - 检查
$PATH
是否包含$JAVA_HOME/bin
:echo $PATH
,若未包含,需在PATH变量中添加该路径。 - 确认JDK是否解压到正确目录,且
bin
目录下存在java
、javac
等可执行文件(权限需为755:sudo chmod 755 $JAVA_HOME/bin/*
)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/29911.html