在 Debian 下“选 Java 编译版本”通常包含 三件事:
java / javac 运行和编译下面按场景说明。
ls /usr/lib/jvm/
常见结果:
java-11-openjdk-amd64
java-17-openjdk-amd64
java-8-openjdk-amd64
查看当前默认版本:
java -version
javac -version
Debian 用 update-alternatives 管理默认版本。
sudo update-alternatives --config java
sudo update-alternatives --config javac
按提示选择编号即可。
sudo update-alternatives --set java /usr/lib/jvm/java-17-openjdk-amd64/bin/java
sudo update-alternatives --set javac /usr/lib/jvm/java-17-openjdk-amd64/bin/javac
javac -source 11 -target 11 Hello.java
或更推荐(Java 9+):
javac --release 11 Hello.java
✅
--release会同时控制 source / target / bootclasspath,最安全
在 pom.xml 中指定:
<properties>
<maven.compiler.release>11</maven.compiler.release>
</properties>
或老写法:
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
或在 build.gradle:
sourceCompatibility = 11
targetCompatibility = 11
| 场景 | 推荐版本 |
|---|---|
| 老系统 / 旧项目 | Java 8 |
| 普通服务 | Java 11(LTS) |
| 新项目 | Java 17(LTS) |
| 最新特性 | Java 21 |
Debian 稳定版(bookworm)默认通常是 OpenJDK 17。
sudo apt update
sudo apt install openjdk-17-jdk
sudo apt install openjdk-8-jdk
java -version
javac -version
update-alternatives --list java
如果你愿意,可以告诉我:
cat /etc/os-release)我可以直接给你最合适的版本配置方案。