Linux Java配置新手必看指南
小樊
39
2025-12-06 09:57:38
Linux Java配置新手必看指南
一 安装前准备与版本选择
- 选择版本:常见为 OpenJDK 与 Oracle JDK。日常开发与部署建议优先 OpenJDK(开源、与大多数发行版仓库集成、更新方便);若项目明确要求或依赖特定功能,再选择 Oracle JDK。
- 选择 LTS 版本:长期支持版更稳定,常见有 Java 8、Java 11、Java 17。初学者建议从 Java 11 或 Java 17 开始。
- 安装方式:优先使用发行版的包管理器(如 apt、yum/dnf)安装,可自动处理依赖与后续升级;需要特定版本或厂商 JDK 时,再选择手动解压安装或版本管理工具。
二 使用包管理器安装 OpenJDK
- Debian/Ubuntu 系
- 更新索引并安装:sudo apt update && sudo apt install openjdk-11-jdk(或安装默认 JDK:sudo apt install default-jdk)
- 验证:java -version、javac -version
- RHEL/CentOS 系
- 安装开发包:sudo yum install java-11-openjdk-devel(或 dnf:sudo dnf install java-11-openjdk-devel)
- 验证:java -version、javac -version
- 说明:包管理器安装的 JDK 通常位于 /usr/lib/jvm/ 目录下,后续设置 JAVA_HOME 需对应到此目录中的具体版本目录。
三 手动安装 Oracle JDK 或特定版本
- 下载并解压
- 从官方站点下载对应平台的压缩包(如 jdk-11_linux-x64_bin.tar.gz)
- 解压并移动到目标目录:tar -xzf jdk-11_linux-x64_bin.tar.gz && sudo mv jdk-11 /usr/local/
- 配置环境变量(用户级或系统级)
- 编辑 ~/.bashrc 或 /etc/profile,在末尾添加(路径按实际调整):
export JAVA_HOME=/usr/local/jdk-11
export PATH=$JAVA_HOME/bin:$PATH
- 使配置生效:source ~/.bashrc 或 source /etc/profile
- 验证:java -version、javac -version
四 配置 JAVA_HOME 与 PATH
- 查找安装路径
- 包管理器安装:ls /usr/lib/jvm 查看具体目录(如 java-11-openjdk-amd64)
- 手动安装:即你解压放置的目录(如 /usr/local/jdk-11)
- 设置环境变量
- 用户级(仅当前用户):编辑 ~/.bashrc 或 ~/.profile
- 系统级(所有用户):编辑 /etc/profile 或 /etc/environment
- 推荐写法:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
- 使配置生效与验证
- 生效:source 相应配置文件
- 验证:echo $JAVA_HOME、java -version、javac -version
五 多版本共存与切换及常见问题
- 多版本共存与切换
- 使用 update-alternatives 管理默认版本:
- 注册候选版本:sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk-amd64 1
- 交互选择默认:sudo update-alternatives --config java
- 如需同时切换编译器:sudo update-alternatives --config javac
- 使用版本管理工具(可选):如 SDKMAN!、jEnv,便于多版本快速切换与项目级管理。
- 常见问题排查
- “java: command not found”:检查 PATH 是否包含 $JAVA_HOME/bin,并确认配置文件已 source。
- “JAVA_HOME 未设置或路径错误”:echo $JAVA_HOME 核对路径,确保指向 JDK 根目录 而非 bin。
- 版本不一致:java -version 与 javac -version 输出应一致;用 alternatives 统一默认版本。
- 是否需要设置 CLASSPATH:现代应用通常无需显式设置;如必须,可仅添加当前目录 “.”(CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar),避免污染全局类路径。