Debian下Java版本如何切换
在Debian系统中,可通过APT或手动下载安装多个Java版本。APT安装提供稳定版,手动安装可获取最新版。通过update-alternatives进行系统级切换,或配置环境变量实现用户级切换。高级用户可使用JEnv工具,按项目目录自动切换,无需手动配置,极大提升开发效率。
在Debian这类Linux发行版上,同时维护多个Ja va版本几乎是开发运维中的家常便饭——老项目可能死守着JDK 8,新应用又要求JDK 11甚至17。怎么让它们和平共处、随时按需切换?下面这套操作流程,基本覆盖了从系统级到用户级的常见方案,可以直接照着来。
Debian下Ja va版本切换的详细步骤
1. 安装多个Ja va版本
首先,得先把需要切换的Ja va版本装进系统里。有两种主流途径:

- 用APT安装OpenJDK(推荐):Debian官方仓库里OpenJDK的版本很全,一条命令就能搞定:
sudo apt update sudo apt install openjdk-8-jdk # 安装OpenJDK 8 sudo apt install openjdk-11-jdk # 安装OpenJDK 11 sudo apt install openjdk-17-jdk # 安装OpenJDK 17(可选) - 手动安装特定版本(比如Oracle JDK):如果项目强制要求Oracle JDK或Adoptium发行版,可以先去官网下载对应的压缩包(例如
jdk-11.0.xx-linux-x64.tar.gz),然后解压到/usr/lib/jvm目录:sudo tar -zxvf jdk-11.0.xx-linux-x64.tar.gz -C /usr/lib/jvm
2. 使用update-alternatives管理版本(系统级切换)
Debian自带的好东西——update-alternatives,专治各种多版本混乱。它能直接控制系统默认的ja va命令指向哪个版本。
- 先看看已经装了哪些Ja va版本:
如果命令没列出所有版本,说明它们还没注册进alternatives系统,需要手动加一下:sudo update-alternatives --list ja va
(数字100、200是优先级,越大越优先)sudo update-alternatives --install /usr/bin/ja va ja va /usr/lib/jvm/ja va-8-openjdk-amd64/bin/ja va 100 sudo update-alternatives --install /usr/bin/ja va ja va /usr/lib/jvm/ja va-11-openjdk-amd64/bin/ja va 200 - 交互式切换版本:运行下面这个命令,终端会列出所有候选版本,输入对应的数字就能瞬间切换:
示例输出长这样:sudo update-alternatives --config ja va
输入There are 2 choices for the alternative ja va (providing /usr/bin/ja va). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/lib/jvm/ja va-11-openjdk-amd64/bin/ja va 200 auto mode 1 /usr/lib/jvm/ja va-8-openjdk-amd64/bin/ja va 100 manual mode 2 /usr/lib/jvm/ja va-11-openjdk-amd64/bin/ja va 200 manual mode1就切到JDK 8,输入2就切回JDK 11。 - 直接设置默认版本:如果你不想进交互菜单,可以直接指定路径:
sudo update-alternatives --set ja va /usr/lib/jvm/ja va-8-openjdk-amd64/bin/ja va
3. 配置环境变量(可选,用户级切换)
如果只想为当前用户单独设置某个Ja va版本,不需要动系统全局,那就改环境变量。
- 编辑
~/.bashrc(也可以改~/.profile或~/.zshrc,看你用的哪个shell):
在末尾追加(以OpenJDK 8为例):nano ~/.bashrcexport JA VA_HOME=/usr/lib/jvm/ja va-8-openjdk-amd64 export PATH=$JA VA_HOME/bin:$PATH - 让配置生效:
source ~/.bashrc - 确认一下
JA VA_HOME是否设置成功:echo $JA VA_HOME
4. 验证切换结果
无论用哪种方式换完版本,都别忘了跑一下这个命令确认:
ja va -version
切到OpenJDK 8后,输出应该是这样的:
openjdk version "1.8.0_392"
OpenJDK Runtime Environment (build 1.8.0_392-8u392-b13-1~deb12u1)
OpenJDK 64-Bit Server VM (build 25.392-b13, mixed mode)
5. 可选:使用JEnv工具(高级用户)
如果觉得系统级切换和手动配环境变量还是不够灵活(比如想针对不同项目自动切换),可以试试jenv——思路跟Node.js的nvm类似。
- 安装JEnv:
wget https://github.com/jenv/jenv/releases/download/1.2.0/jenv-1.2.0.tar.gz tar xzf jenv-1.2.0.tar.gz sudo mv jenv-1.2.0 /usr/local/bin - 配置环境变量:编辑
~/.bashrc,添加:echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(jenv init -)"' >> ~/.bashrc source ~/.bashrc - 把已安装的Ja va版本添加到JEnv:
jenv add /usr/lib/jvm/ja va-8-openjdk-amd64 jenv add /usr/lib/jvm/ja va-11-openjdk-amd64 - 设置全局版本或项目级版本:
jenv global 1.8 # 全局切到Ja va 8 jenv local 11 # 当前目录用Ja va 11(会生成一个`.ja va-version`文件,进目录自动生效)
通过上面这些步骤,不管是要系统全局统一版本,还是想在单个项目里做精细化控制,Debian都能轻松搞定。
Postman是一套面向API全生命周期的开发与测试平台,可在Mac上发送和调试多种协议请求,管理集合、环境及认证信息,并完成脚本测试、模拟服务、监控、文档发布和团队协作。它适合开发、测试及运维人员使用,提供个人免费方案。
Docker Desktop 是 Docker 官方为 Mac 提供的容器开发环境,集成 Docker Engine、命令行工具、Compose、Build、Kubernetes 与图形化管理界面。
Android Studio 是 Google 面向安卓应用开发提供的官方集成开发环境,基于 IntelliJ IDEA 构建。它整合智能代码编辑、Gradle 构建、界面预览、设备模拟、性能分析、调试测试及 APK 分析等工具。
PixPix 是面向品牌、卖家和内容团队的在线 AI 图片视频创作平台,提供图视频 Agent、无限画布、图片生成、视频生成、自然语言编辑及商品套图、产品精修和带货视频等电商工具。
Postman 是面向 API 全生命周期的开发与协作平台。Windows 桌面版可用于构建和发送 HTTP、GraphQL、gRPC、WebSocket、MQTT 等请求,并提供环境变量、集合、脚本测试、模拟服务、监控、文档及团队工作区等
Docker Desktop 为 Windows 开发者提供集成式容器环境,内置 Docker Engine、命令行工具、Compose、Build 与 Kubernetes 等组件,可在本机完成镜像构建、容器运行、日志查看和资源管理。













