发布于2026-07-13 阅读(0)
扫一扫,手机访问
在Debian系统上搞Ja va开发,第一个要搞清楚的问题就是:到底能用哪些版本的Ja va来编译代码?这事儿说到底,得看你装了什么JDK包,以及用的Debian是哪个版本。Debian官方仓库长期提供OpenJDK,常见可直接安装的JDK包包括openjdk-8-jdk、openjdk-11-jdk、openjdk-17-jdk;也可以安装元包default-jdk获取系统默认JDK。较新的Debian版本通常默认提供OpenJDK 11或OpenJDK 17。当然,通过第三方安装器或手动解压方式,使用Oracle JDK等其他发行版也是可行的。

下面这张表汇总了常用Debian版本中常见的JDK选择和安装命令,以apt为例,方便快速参考:
| 版本家族 | 典型包名 | 安装命令示例 | 说明 |
|---|---|---|---|
| Ja va 8 | openjdk-8-jdk | sudo apt install openjdk-8-jdk | 传统LTS,仍广泛用于存量项目 |
| Ja va 11 | openjdk-11-jdk / default-jdk | sudo apt install openjdk-11-jdk 或 sudo apt install default-jdk | 常见默认版本,LTS |
| Ja va 17 | openjdk-17-jdk / default-jdk | sudo apt install openjdk-17-jdk 或 sudo apt install default-jdk | 常见默认版本,LTS |
| Ja va 21 | 视仓库而定 | 先 apt search openjdk-21-jdk | 若仓库提供,则可直接安装 |
| Oracle JDK | oracle-ja va11-installer 等 | 需添加第三方仓库或手动安装 | 许可与获取方式不同于OpenJDK |
需要留意的是:如果只是运行程序,安装default-jre就够了;但要编译代码,必须安装对应的**-jdk**包。另外,update-alternatives这个工具可以在多个已安装版本间优雅地切换默认的ja va/ja vac。
先说怎么查看和切换版本。命令行敲ja va -version和ja vac -version,就能看到当前运行时和编译器版本。如果想交互式地切换默认版本,用sudo update-alternatives --config ja va和sudo update-alternatives --config ja vac。JA VA_HOME环境变量根据项目需求设置即可,编辑/etc/environment或shell配置文件(比如~/.bashrc),填入类似JA VA_HOME=/usr/lib/jvm/ja va-17-openjdk-amd64,然后source使其生效。
编译与运行示例还是老一套:
ja vac HelloWorld.ja vaja va HelloWorld兼容性问题必须警惕:低版本JRE无法加载高版本编译的类文件,会报“Unsupported major.minor version”错误。class文件的“主版本号”决定了兼容性:Ja va 8对应52,Ja va 11对应55,Ja va 17对应61,Ja va 21对应65。搞混了版本,编译出来的东西在其他环境跑不了,这是新人容易踩的坑。
新项目建议优先选择LTS版本,比如Ja va 17或Ja va 21,这样生态好、长期维护有保障。存量项目如果用着Ja va 8或11,保持现状更稳妥,别随意升级,以免引入兼容性问题。同一台机器完全可以并行安装多个JDK版本,通过update-alternatives或构建工具(像Ma ven、Gradle、IDE)来指定项目SDK和语言级别,从根本上避免版本不匹配导致的编译或运行错误。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8