商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Debian下Java版本如何切换

Debian下Java版本如何切换

  发布于2026-06-29 阅读(0)

扫一扫,手机访问

在Debian这类Linux发行版上,同时维护多个Ja va版本几乎是开发运维中的家常便饭——老项目可能死守着JDK 8,新应用又要求JDK 11甚至17。怎么让它们和平共处、随时按需切换?下面这套操作流程,基本覆盖了从系统级到用户级的常见方案,可以直接照着来。

Debian下Ja va版本切换的详细步骤

1. 安装多个Ja va版本

首先,得先把需要切换的Ja va版本装进系统里。有两种主流途径:

Debian下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版本
    sudo update-alternatives --list ja va
    
    如果命令没列出所有版本,说明它们还没注册进alternatives系统,需要手动加一下:
    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
    
    (数字100、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 mode
    
    输入1就切到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):
    nano ~/.bashrc
    
    在末尾追加(以OpenJDK 8为例):
    export 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都能轻松搞定。

本文转载于:https://www.yisu.com/ask/67561546.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注