CentOS Java环境变量配置技巧
小樊
42
2025-11-23 17:48:04
CentOS Java 环境变量配置技巧
一 安装与路径确认
- 使用包管理器安装 OpenJDK(推荐)
- 安装 JDK 8:sudo yum install java-1.8.0-openjdk-devel
- 安装 JDK 11:sudo yum install java-11-openjdk-devel
- 手动安装 Oracle JDK 或特定版本
- 解压到目标目录(示例):tar xzf jdk-8u201-linux-x64.tar.gz -C /usr/local/java
- 确认安装路径
- OpenJDK 通常在:/usr/lib/jvm/
- 查看具体目录:ls /usr/lib/jvm/,或使用 sudo update-alternatives --config java 查看并记录实际路径。
二 环境变量配置方法与模板
- 系统级配置(所有用户生效)
- 编辑:sudo vi /etc/profile,在末尾添加(路径替换为你的实际路径):
- JDK 8 示例:
- export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
- export PATH=$JAVA_HOME/bin:$PATH
- 可选(传统用途):export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- JDK 11 示例:
- export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
- export PATH=$JAVA_HOME/bin:$PATH
- 使生效:source /etc/profile
- 模块化配置(更优雅)
- 新建脚本:sudo touch /etc/profile.d/java.sh
- 写入与上相同的 JAVA_HOME 与 PATH 设置,保存后:source /etc/profile.d/java.sh
- 用户级配置(仅当前用户)
- 编辑:vi ~/.bashrc(若用 zsh,编辑 ~/.zshrc)
- 添加与上相同的两行,保存后:source ~/.bashrc
- 提示
- 路径分隔符使用英文冒号 :
- 修改 PATH 时建议前置 $JAVA_HOME/bin 以优先使用指定 JDK。
三 多版本管理与默认版本切换
- 查看与切换
- 列出并选择默认 java:sudo alternatives --config java
- 如需管理 javac 也可同样配置:sudo alternatives --config javac
- 与 JAVA_HOME 的关系
- 切换 alternatives 后,建议同步更新 /etc/profile.d/java.sh 或 ~/.bashrc 中的 JAVA_HOME 为对应实际路径,避免开发与运行不一致。
四 验证与常见排错
- 验证命令
- 查看版本:java -version、javac -version
- 查看变量:echo $JAVA_HOME
- 常见问题
- 命令未找到:检查 PATH 是否包含 $JAVA_HOME/bin,确认已执行 source 使配置生效
- 架构不匹配:用 getconf LONG_BIT 确认系统位数,下载对应 x86_64 或 aarch64 的 JDK
- 路径错误:用 ls /usr/lib/jvm/ 或 update-alternatives --config java 校对实际安装路径
- 多用户环境:系统级配置对所有用户生效;仅当前用户生效请使用用户级配置。
五 进阶与实用建议
- 不再需要显式设置 CLASSPATH
- 现代 JDK(尤其是 JDK 9+ 模块化)通常无需设置 CLASSPATH;传统 dt.jar、tools.jar 多已不再适用,除非有历史项目强依赖
- 使用 alternatives 管理服务脚本
- 可为 java/javac 等注册 alternatives,便于统一切换版本与回滚
- 统一工具链管理
- 在同一套配置中顺带管理 Maven/Gradle 等:
- export M2_HOME=/opt/maven && export PATH=$M2_HOME/bin:$PATH
- export GRADLE_HOME=/opt/gradle && export PATH=$GRADLE_HOME/bin:$PATH
- 使用脚本目录管理环境变量
- 将 Java 配置放入 /etc/profile.d/java.sh,便于维护、分层与启用/禁用。