You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查找未通过SDKMAN管理的旧版本Java运行时路径

如何查找未通过SDKMAN管理的旧版本Java运行时路径

嗨,我来帮你定位那些没被SDKMAN接管的旧版Java路径,试试下面这些方法:

  • 用update-alternatives工具查询(Linux)
    很多Linux发行版会用这个工具管理系统默认的可执行程序,运行以下命令就能列出所有注册的Java可执行文件路径:

    sudo update-alternatives --list java
    

    输出的路径类似/usr/lib/jvm/java-11-openjdk-amd64/bin/java,去掉末尾的/bin/java,剩下的就是对应JDK的根目录了,比如/usr/lib/jvm/java-11-openjdk-amd64/。

  • 检查系统常见的Java安装目录
    不同系统的默认安装路径不一样,直接去这些目录看看:

    • Linux:/usr/lib/jvm/(系统级安装的JDK基本都在这)、/opt/(手动解压的JDK常放在这里)
    • macOS:/Library/Java/JavaVirtualMachines/(每个版本的JDK都是这个目录下的独立子文件夹)
  • 查看环境变量配置文件
    如果你之前给旧版本Java设置过JAVA_HOME,可以去shell配置文件里找记录:

    # 检查bash配置
    grep JAVA_HOME ~/.bashrc
    # 检查zsh配置
    grep JAVA_HOME ~/.zshrc
    

    找到对应的JAVA_HOME值就是旧版本JDK的路径。

  • 用find命令全局搜索
    如果上面的方法都没找到,试试全局搜索特定版本的JDK文件夹,比如找OpenJDK 11:

    find / -name "*jdk-11*" -type d 2>/dev/null
    

    这个命令会遍历系统查找名字包含jdk-11的目录,2>/dev/null是用来屏蔽权限不足的错误提示,让输出更干净。

找到路径后,你就可以把它添加到Neovim的JAVA_RUNTIME_PATHS配置里,比如:

local JAVA_RUNTIME_PATHS = {
  {
    name = "JavaSE-21",
    path = HOME .. "/.sdkman/candidates/java/21-open/",
  },
  {
    name = "JavaSE-17",
    path = HOME .. "/.asdf/installs/java/corretto-17.0.4.9.1",
  },
  {
    name = "JavaSE-11",
    path = "/找到的jdk11路径/",
  },
}

备注:内容来源于stack exchange,提问作者codemage

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 08:48:01