Java在Linux如何进行版本控制
导读:Linux下Java版本控制与切换实践 一 核心概念与准备 明确区分:JRE(运行环境)与JDK(开发工具包,含编译器)。开发与构建通常需要安装JDK。 常见安装来源:发行版仓库的OpenJDK包,或手动下载的Oracle JDK压缩包。...
Linux下Java版本控制与切换实践
一 核心概念与准备
- 明确区分:JRE(运行环境)与JDK(开发工具包,含编译器)。开发与构建通常需要安装JDK。
- 常见安装来源:发行版仓库的OpenJDK包,或手动下载的Oracle JDK压缩包。
- 建议目录:将多个JDK统一放在如**/usr/local/java或/opt/jdk**,便于管理与切换。
- 基础检查与定位:
- 查看已安装版本与路径:
ls /usr/lib/jvm/ - 查看当前生效版本:
java -version、javac -version、which java、echo $JAVA_HOME。
- 查看已安装版本与路径:
二 系统级切换 update-alternatives
- 适用场景:系统范围内切换默认
java命令,稳定、通用,适合服务器与多用户环境。 - 安装多个JDK(示例):
- 包管理器安装(Debian/Ubuntu):
sudo apt install openjdk-8-jdk openjdk-11-jdk - 手动安装:下载JDK压缩包并解压至**/usr/local/java**。
- 包管理器安装(Debian/Ubuntu):
- 注册候选版本到 alternatives:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/bin/java 1 sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk-amd64/bin/java 2 sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-8-openjdk-amd64/bin/javac 1 sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-11-openjdk-amd64/bin/javac 2 - 交互式切换默认版本:
sudo update-alternatives --config java(同理可对javac执行)。 - 验证:
java -version、javac -version。 - 提示:为避免仅切换
java而编译器不一致,建议同时注册并切换javac。
三 用户级与项目级管理工具
- SDKMAN!(推荐)
- 安装:
curl -s "https://get.sdkman.io" | bash,然后执行:source "$HOME/.sdkman/bin/sdkman-init.sh" - 使用:
- 列表:
sdk list java - 安装:
sdk install java 11.0.12-open - 切换:
sdk use java 11.0.12-open - 设为默认:
sdk default java 11.0.12-open
- 列表:
- 安装:
- jEnv(轻量)
- 安装:
git clone https://github.com/jenv/jenv.git ~/.jenv,并在~/.bashrc或~/.zshrc加入:export PATH="$HOME/.jenv/bin:$PATH" eval "$(jenv init -)" - 使用:
- 添加JDK:
jenv add /usr/lib/jvm/java-11-openjdk-amd64 - 查看:
jenv versions - 切换:
jenv global 11/jenv local 11/jenv shell 11
- 添加JDK:
- 安装:
- 适用建议:SDKMAN!功能更全、生态丰富;jEnv轻量、上手快。两者均支持按全局/项目/会话粒度切换。
四 手动环境变量与别名切换
- 配置
JAVA_HOME与PATH(写入~/.bashrc或~/.profile):export JAVA_HOME_8=/usr/lib/jvm/java-8-openjdk-amd64 export JAVA_HOME_11=/usr/lib/jvm/java-11-openjdk-amd64 # 便捷切换函数 useJava() { case "$1" in 8) export JAVA_HOME=$JAVA_HOME_8 ; ; 11) export JAVA_HOME=$JAVA_HOME_11 ; ; *) echo "Usage: useJava 8|11"; return 1 ; ; esac export PATH=$JAVA_HOME/bin:$PATH echo "Switched to JDK $1, JAVA_HOME=$JAVA_HOME" } - 使配置生效:
source ~/.bashrc - 使用:
useJava 8或useJava 11,随后用java -version验证。 - 提示:若使用包管理器安装,JDK路径通常位于**/usr/lib/jvm/**;手动安装请使用你的实际解压路径。
五 项目级编译运行与IDE设置及常见问题
- 项目级编译配置
- Maven(在
pom.xml中):< properties> < maven.compiler.source> 1.8< /maven.compiler.source> < maven.compiler.target> 1.8< /maven.compiler.target> < /properties> - Gradle(在
build.gradle中):sourceCompatibility = 1.8 targetCompatibility = 1.8
- Maven(在
- IDE设置
- IntelliJ IDEA:File → Project Structure → Project → Project SDK / Language level
- Eclipse:Window → Preferences → Java → Installed JREs
- VS Code:安装Java Extension Pack,在设置中配置
java.home
- 常见问题排查
- 切换后仍显示旧版本:执行
source ~/.bashrc或重开终端;确认PATH中$JAVA_HOME/bin位于前列。 - 命令未找到或路径错误:检查
which java、echo $PATH,确保JAVA_HOME/bin已加入PATH。 - 权限问题:检查JDK目录权限,必要时调整所有者:
sudo chown -R $USER:$USER $JAVA_HOME - 仅切换
java未切换javac:对javac也执行update-alternatives --config javac。
- 切换后仍显示旧版本:执行
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Java在Linux如何进行版本控制
本文地址: https://pptw.com/jishu/770300.html
