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

您的位置: 首页 > 文章列表 > 编程开发 > Ubuntu如何设置Java版本

Ubuntu如何设置Java版本

  发布于2026-07-13 阅读(0)

扫一扫,手机访问

在Ubuntu系统上管理Ja va版本,几乎是每个开发者都会遇到的场景。不同项目依赖不同JDK,来回切换如果全靠手工捣鼓路径,既容易出错也浪费时间。下面这套操作流程,涵盖了从安装、切换到环境变量配置的完整路径,同时也整理了jenv和SDKMAN!这两种更高效的工具方案。

Ubuntu如何设置Ja va版本

一、安装多个JDK版本

先更新包索引,然后把常用的LTS版本一次性装上,比如OpenJDK 11和OpenJDK 17。两条命令搞定:

  • sudo apt update
  • sudo apt install openjdk-11-jdk openjdk-17-jdk

装完后用 ja va -version 看一眼,确认当前默认版本是谁。如果后续要装更多版本,同样的方式追加即可。

二、用系统工具 update-alternatives 切换

这是Ubuntu自带的多版本管理机制,不用额外装任何东西。执行下面这条命令,系统会列出所有已注册的Ja va路径,你只需要输入对应的编号就能切换默认版本:

  • sudo update-alternatives --config ja va

如果列表里缺了某个你刚安装的JDK,可以手动把它注册进去,顺便指定优先级(数值越高,自动选择时越靠前):

  • sudo update-alternatives --install /usr/bin/ja va ja va /usr/lib/jvm/ja va-11-openjdk-amd64/bin/ja va 1
  • sudo update-alternatives --install /usr/lib/jvm/ja va-17-openjdk-amd64/bin/ja va 2

顺手把编译器也切一下,不然ja va版本变了ja vac还是旧的,容易出幺蛾子:

  • sudo update-alternatives --config ja vac

最后用 ja va -versionja vac -version 双重确认,确保切换生效。

三、设置 JA VA_HOME 与环境变量

光切换ja va命令还不够,很多框架和构建工具(像Ma ven、Gradle、Tomcat)都要读 JA VA_HOME 环境变量。这里分三种场景:

给当前用户设置,编辑 ~/.bashrc 或 ~/.zshrc,追加:

  • export JA VA_HOME=/usr/lib/jvm/ja va-11-openjdk-amd64
  • export PATH=$JA VA_HOME/bin:$PATH

然后执行 source ~/.bashrcsource ~/.zshrc 让配置立即生效。

给所有用户设置,更稳妥的做法是写入 /etc/environment:

  • JA VA_HOME="/usr/lib/jvm/ja va-11-openjdk-amd64"
  • PATH="$JA VA_HOME/bin:$PATH"

修改后重新登录,或者 source /etc/environment 也能生效。

偷懒小技巧:不想每次都写死路径,可以用一行命令从当前默认ja va路径自动推导出JA VA_HOME:

  • export JA VA_HOME=$(readlink -f /usr/bin/ja va | sed "s:bin/ja va::")

这样不管你用update-alternatives切到哪个版本,JA VA_HOME都会自动跟随。

四、使用版本管理工具 jenv 或 SDKMAN

如果项目间版本切换非常频繁,或者你需要在不同目录下自动切换到不同JDK,那手动管理就有点力不从心了。推荐两个流行工具:

jenv——轻量级,适合精细化控制。安装很简单:

  • git clone https://github.com/jenv/jenv.git ~/.jenv
  • 初始化:把两行配置追加到 ~/.bashrc 里——export PATH="$HOME/.jenv/bin:$PATH"eval "$(jenv init -)",然后 source ~/.bashrc
  • 添加JDK:jenv add /usr/lib/jvm/ja va-11-openjdk-amd64jenv add /usr/lib/jvm/ja va-8-openjdk-amd64
  • 切换方式很灵活:全局用 jenv global 11.0,当前shell用 jenv shell 8.0,甚至可以针对某个目录用 jenv local 17.0,这样进入该目录自动切。

SDKMAN!——更全能,不仅能管理Ja va,还能管理Ma ven、Gradle、Kotlin等一大堆SDK。安装一条命令:

  • curl -s "https://get.sdkman.io" | bash,然后 source "$HOME/.sdkman/bin/sdkman-init.sh"
  • 使用:sdk install ja va 11.0.11-opensdk use ja va 8.0.292-opensdk default ja va 11.0.11-open

SDKMAN! 可以自动帮你下载安装并配置好环境,省去手动下载tar包的麻烦。

五、常见问题与排查

即便步骤都走了一遍,偶尔还是会遇到翻车的情况。这里列几个典型场景的应对思路:

版本冲突或残留旧版本——尽量统一使用 update-alternatives 来管理,别同时用手动改软链接加环境变量混着来。如果某个旧版本确实不需要了,用 sudo apt-get remove openjdk- 先卸载,再重新配置默认版本。

某些应用还是用旧版本——比如Tomcat、Jenkins这类服务,它们通常有自己的启动脚本或配置文件,里面可能硬编码了JA VA_HOME。以Tomcat为例,检查 /etc/default/tomcat 或 catalina.sh,找到 JA VA_HOME 变量改成正确路径,然后 sudo systemctl restart tomcat

环境变量不生效——先确认你改的是哪个配置文件:~/.bashrc、~/.zshrc、/etc/environment 三者的生效范围不一样。执行 echo $JA VA_HOME 看输出对不对,如果为空,八成是语法错了或者没source。实在不行,关掉终端重新打开,或者重新登录一下系统。

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

热门关注