发布于2026-07-12 阅读(0)
扫一扫,手机访问
在CentOS上配置Ja va环境变量,说简单也简单,说复杂也能让人抓狂——尤其是当你需要在不同版本之间来回切换、或者突然发现某个工具找不着JDK路径的时候。下面这套配置方法,是我在实际运维中逐步沉淀下来的,既覆盖了基础操作,也聊几个进阶的小窍门。
先搞定Ja va本身。推荐直接用包管理器安装OpenJDK,省心,而且和系统集成度好。比如JDK 8就执行sudo yum install ja va-1.8.0-openjdk-devel,JDK 11则换成ja va-11-openjdk-devel。如果你非要手动装Oracle JDK或某个特定版本,也行——解压到目标目录即可,例如tar xzf jdk-8u201-linux-x64.tar.gz -C /usr/local/ja va。
装完之后最重要的一步:确认安装路径。OpenJDK默认通常会跑到/usr/lib/jvm/下面,但具体是哪个子目录?用ls /usr/lib/jvm/看一眼,或者更直接的方法:sudo update-alternatives --config ja va,系统会列出所有已安装的Ja va版本及其实际路径,记下来就行。
配置环境变量有几种层级,根据你的需求选一种就行。先说最通用的——系统级配置,所有用户都生效。
编辑/etc/profile文件,在末尾加上几行。以JDK 8为例:
export JA VA_HOME=/usr/lib/jvm/ja va-1.8.0-openjdk
export PATH=$JA VA_HOME/bin:$PATH
# CLASSPATH可选(历史项目可能需要)
export CLASSPATH=.:$JA VA_HOME/lib/dt.jar:$JA VA_HOME/lib/tools.jar
JDK 11的话,其实只需要前两行,因为模块化之后不再依赖dt.jar和tools.jar。改完保存,然后source /etc/profile让它立即生效。
觉得直接改/etc/profile太“暴力”了?更优雅的做法是模块化配置:新建一个/etc/profile.d/ja va.sh文件,把上面同样的内容写进去,保存后再source /etc/profile.d/ja va.sh就行。这样方便维护,想禁用时直接重命名脚本即可。
如果你只想对当前用户生效,那就编辑~/.bashrc(如果用的zsh则是~/.zshrc),同样添加那两行。改完source ~/.bashrc。
这里提醒两个细节:路径分隔符一定是英文冒号;修改PATH时,尽量把$JA VA_HOME/bin放在前面,这样系统会优先使用你指定的JDK,避免被其他路径下的旧版本抢了先。
如果你装了多个JDK版本,总得有个默认。用sudo alternatives --config ja va就可以列出并选择默认的ja va命令。同理,ja vac也要单独管理:sudo alternatives --config ja vac。
但有个坑:切换了alternatives之后,JA VA_HOME环境变量并不会自动更新。所以你需要同步修改之前配置的/etc/profile.d/ja va.sh或~/.bashrc里的JA VA_HOME路径,让开发工具和运行时保持一致性,否则编译时可能用着一个版本,运行时又是另一个版本,排查起来很头疼。
配置完了,验证三件套:ja va -version、ja vac -version、echo $JA VA_HOME。如果报“命令未找到”,第一反应是检查PATH里有没有包含$JA VA_HOME/bin,同时确认你已经执行过source。
还可能是架构不匹配——CentOS有x86_64和aarch64之分,用getconf LONG_BIT确认系统位数,下载对应的JDK。路径错误也很常见,用ls /usr/lib/jvm/或update-alternatives --config ja va校对实际安装路径。
另外注意作用域:系统级配置对所有用户生效,如果只有某个用户出问题,多半是他自己的用户级配置覆盖了系统级。
最后聊几个我比较推荐的做法。首先,现代JDK(尤其是JDK 9+)已经不需要显式设置CLASSPATH了,除非你有历史遗留项目强依赖dt.jar和tools.jar。所以新手直接忽略那段即可。
其次,善用alternatives来管理服务脚本。除了ja va和ja vac,你还可以把其他相关命令注册进去,这样回滚版本时特别干净。
再一个实用技巧:既然环境变量都配置了,不如顺手把Ma ven和Gradle的路径也加进去。比如在同一个脚本里添加:
export M2_HOME=/opt/ma ven && export PATH=$M2_HOME/bin:$PATH
export GRADLE_HOME=/opt/gradle && export PATH=$GRADLE_HOME/bin:$PATH
最后,强烈建议把所有环境变量配置都放到/etc/profile.d/目录下,每个工具一个独立脚本。这样管理清晰,想启用或禁用某个工具只需要移动或重命名对应的.sh文件,比堆在/etc/profile里清爽太多了。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8