当前位置: 首页
编程语言
Ubuntu系统设置Java默认版本的详细步骤

Ubuntu系统设置Java默认版本的详细步骤

热心网友 时间:2026-05-06
转载

Ubuntu 设置 Ja va 默认版本

在 Ubuntu 系统上管理多个 Ja va 版本,是开发者常会遇到的任务。无论是为了项目兼容,还是尝鲜新特性,掌握如何优雅地切换默认版本,都算是一项基本功。下面就来梳理一下从系统全局到具体应用的全套设置方法。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

一 使用 update-alternatives 切换默认版本

这是最核心、最推荐的系统级切换方法。它通过一个统一的配置系统来管理不同版本的命令链接。

  • 查看与选择默认 ja va
    • 列出可用版本:在终端执行 sudo update-alternatives --config ja va。系统会列出所有已注册的 Ja va 版本,并提示当前默认的是哪一个。
    • 接下来,只需要在交互界面中输入对应版本的编号,然后回车确认,切换就完成了。如果想查看更详细的链接信息,可以使用 update-alternatives --display ja va
  • 同时切换编译器(可选但推荐)
    • 为了保证编译环境与运行环境一致,最好也同步切换 ja vac。命令如出一辙:sudo update-alternatives --config ja vac
  • 验证
    • 切换完成后,别忘了验证一下。分别运行 ja va -versionja vac -version,输出的版本号应该就是你刚才选择的那一个。

二 若版本未纳入 alternatives 的注册方法

有时候,你手动安装或通过其他方式获取的 JDK 可能没有被自动注册到 update-alternatives 系统中。这时,就需要我们手动把它“加进去”。

  • 手动注册 ja va 与 ja vac
    • 注册命令的格式是固定的,关键在于提供正确的 JDK 可执行文件路径。以 Ja va 11 为例(请务必替换为你自己的实际安装路径):
      sudo update-alternatives --install /usr/bin/ja va ja va /usr/lib/jvm/ja va-11-openjdk-amd64/bin/ja va 100
      sudo update-alternatives --install /usr/bin/ja vac ja vac /usr/lib/jvm/ja va-11-openjdk-amd64/bin/ja vac 100
    • 这里的数字 “100” 是优先级,数字越大优先级越高。当系统自动选择时,会优先使用优先级高的版本。
  • 注册成功后,再执行一遍 sudo update-alternatives --config ja va,就能在列表里看到新加入的版本并进行选择了。

三 设置 JA VA_HOME 与 PATH(可选)

很多构建工具(如 Ma ven、Gradle)和应用程序会依赖 JA VA_HOME 环境变量来定位 Ja va 安装位置。设置它能避免很多不必要的麻烦。

  • 全局对所有用户(/etc/environment)
    • 编辑全局环境变量文件:sudo nano /etc/environment
    • 在文件末尾添加一行,例如:JA VA_HOME="/usr/lib/jvm/ja va-11-openjdk-amd64"(路径请按实际情况修改)。
    • 要让这个设置立即生效,可以运行 source /etc/environment,或者更简单地——重新登录一下系统。
  • 当前用户(~/.bashrc 或 ~/.zshrc)
    • 如果只想为当前用户设置,可以编辑用户主目录下的 shell 配置文件(根据你使用的 shell 选择 .bashrc 或 .zshrc)。
    • 在文件末尾追加以下两行:
      • export JA VA_HOME=/usr/lib/jvm/ja va-11-openjdk-amd64
      • export PATH=$JA VA_HOME/bin:$PATH
    • 保存后,执行 source ~/.bashrcsource ~/.zshrc 使其生效。
  • 验证:通过 echo $JA VA_HOME 可以检查变量是否设置正确,再结合 ja va -version 确认版本。

四 特定应用与 IDE 的版本指定

即使设置了系统默认版本,有些应用还是“有自己想法”。它们往往提供了独立的配置项,优先级高于系统设置。

  • 服务或应用
    • 以 Tomcat 为例,你可以在其配置文件(如 /etc/default/tomcat)中显式设置 JA VA_HOME。修改后,记得重启服务:sudo systemctl restart tomcat
  • IDE
    • IntelliJ IDEA:进入 File → Project Structure → Project,在 “Project SDK” 下拉菜单中选择或添加所需的 JDK。
    • Eclipse:通过 Window → Preferences → Ja va → Installed JREs,添加并勾选你想要使用的 JDK。

五 常见问题与快速排查

操作过程中如果遇到问题,不妨先看看这里有没有解决方案。

  • 命令未找到或未列出版本
    • 最可能的原因是你想要的版本压根没安装。使用 apt 命令安装即可,例如:sudo apt update && sudo apt install openjdk-11-jdk(将 11 替换为 8、17 等其他版本号)。
  • 环境变量不生效
    • 首先检查配置文件语法是否正确,特别是引号和等号。确认后,务必执行了 source 命令或开启了新的终端会话。用 echo $JA VA_HOMEwhich ja va 对比一下路径,往往能发现问题所在。
  • 某些程序仍用旧版本
    • 这说明该程序可能在其自身的脚本或配置中硬编码了 Ja va 路径。解决方法是找到该应用的启动脚本或配置文件,在其中显式地导出(export)你想要的 JA VA_HOMEPATH
来源:https://www.yisu.com/ask/72957911.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
C++结构体数组追加写入二进制文件方法与源码详解

C++结构体数组追加写入二进制文件方法与源码详解

C++如何将结构体数组追加保存到二进制文件:ios::app与write的正确用法【附源码】 直接使用 std::ofstream 配合 ios::app 模式来追加写入结构体数组,是一个典型的错误做法。原因在于,ios::app 会强制每次写入都定位到文件末尾,但它完全忽略了字节对齐、结构体填充以

时间:2026-05-06 21:51
C++高并发负载均衡算法实现与源码解析

C++高并发负载均衡算法实现与源码解析

C++实现高并发任务的分流处理与负载均衡核心要点 用 std::hash + 取模实现最简任务分流,但要注意哈希碰撞和扩容问题 直接对任务ID进行 std::hash{}(task_id) % worker_count 运算,无疑是实现分流最快的方式。这种方法特别适合那些请求ID已知、工作线程数量又

时间:2026-05-06 21:51
C++可变参数函数模板实现方法递归展开与折叠表达式详解

C++可变参数函数模板实现方法递归展开与折叠表达式详解

C++如何实现可变参数的函数模板:递归展开与折叠表达式详解 先说核心结论: 在C++11及之后的标准中,实现可变参数函数模板主要有两种范式。早期依赖递归模板配合参数包展开,而从C++17开始,更推荐使用折叠表达式——后者在语法上更简洁,类型安全,避免了递归带来的开销,并且能支持所有的二元运算符。 C

时间:2026-05-06 21:50
Golang实现LSM树存储结构的详细方法与步骤

Golang实现LSM树存储结构的详细方法与步骤

Go标准库无LSM-Tree实现,手写MemTable和WAL风险高:MemTable需并发写入、快照隔离、迭代器遍历及内存触发flush,WAL要求原子写入、可控fsync与幂等重放;推荐直接使用Pebble或Badger等成熟库。 想在Go里用上LSM-Tree?现实是,标准库并没有提供现成的实

时间:2026-05-06 21:50
C++ std::views::join 详解 如何将嵌套容器展开为单层序列视图

C++ std::views::join 详解 如何将嵌套容器展开为单层序列视图

C++ std::views::join用法:将嵌套容器打平为单层视图【详解】 std::views::join 什么时候能用、什么时候会崩 先划个重点:std::views::join 可不是什么容器都能喂给它。它只认一种“食物”——元素本身也是范围的输入。比如,std::vector 或者 st

时间:2026-05-06 21:50
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜
热门教程
更多
  • 游戏攻略
  • 安卓教程
  • 苹果教程
  • 电脑教程