Ubuntu 更新 Java 编译版本的实用步骤
一 检查当前版本与安装目标 JDK
- 查看当前运行时与编译器版本:
- java -version
- javac -version
- 更新软件包索引并安装所需版本的 OpenJDK JDK(以安装 OpenJDK 17 为例):
- sudo apt update
- sudo apt install openjdk-17-jdk
- 如需其他版本,将命令中的版本号替换为 openjdk-11-jdk、openjdk-21-jdk 等。以上步骤可确保系统拥有新版本的 javac 编译器。
二 切换默认 Java 与编译器
- 使用 alternatives 选择默认 java(运行时):
- sudo update-alternatives --config java
- 同时选择默认 javac(编译器):
- sudo update-alternatives --config javac
- 若列表中没有新装的 JDK,先注册到 alternatives(示例路径,按实际安装路径调整):
- sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-17-openjdk-amd64/bin/java 100
- sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-17-openjdk-amd64/bin/javac 100
- 再次执行 --config 选择新版本。完成后用 java -version 与 javac -version 验证。
三 设置 JAVA_HOME 与 PATH(可选但推荐)
- 推荐写入系统级环境文件(对所有用户生效):
- sudo nano /etc/environment
- 添加或修改:JAVA_HOME=“/usr/lib/jvm/java-17-openjdk-amd64”
- 使配置生效:source /etc/environment
- 或写入当前用户配置文件(仅对当前用户生效):
- echo ‘export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64’ >> ~/.bashrc
- echo ‘export PATH=$JAVA_HOME/bin:$PATH’ >> ~/.bashrc
- source ~/.bashrc
- 验证:echo $JAVA_HOME 与 which java、which javac 是否指向新路径。
四 多版本管理与构建工具配置
- 多版本管理可选方案:
- 使用 jenv 管理多 JDK:
- 安装:git clone https://github.com/jenv/jenv.git ~/.jenv
- 配置:echo ‘export PATH=“$HOME/.jenv/bin:$PATH”’ >> ~/.bashrc;echo ‘eval “$(jenv init -)”’ >> ~/.bashrc;source ~/.bashrc
- 添加 JDK:jenv add /usr/lib/jvm/java-17-openjdk-amd64
- 切换版本:jenv global 17 或 jenv local 11
- 或使用 Debian 提供的 alternatives 组切换:sudo update-java-alternatives --list 与 --set 进行切换。
- 构建工具显式指定语言级别(示例):
- Maven(pom.xml):
- Gradle(build.gradle):
- java {
- sourceCompatibility = JavaVersion.VERSION_17
- targetCompatibility = JavaVersion.VERSION_17
- }
- 完成后执行 mvn clean install 或 ./gradlew build 进行验证。