安装了 openjdk@17 和 zulu@8,通过 jenv 来管理 JDK 版本

88次阅读
没有评论

你已经成功安装了 openjdk@17 和 zulu@8,现在可以配置 jenv 来管理 JDK 版本。按照下面的步骤操作:


1. 确保 jenv 已安装

如果你还没有安装 jenv,可以先安装:

brew install jenv

然后在 ~/.zshrc 或 ~/.bashrc(取决于你使用的 shell)中添加:

echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc
source ~/.zshrc

检查 jenv 是否生效:

jenv --version

如果 jenv 安装成功,会显示版本号,例如:

jenv 0.5.5

2. 添加 JDK 到 jenv

(1)找到 JDK 安装路径

你可以使用以下命令查看 MacOS 上的 JDK 目录:

/usr/libexec/java_home -V

示例输出:

Matching Java Virtual Machines (2):
    17.0.14 (x86_64) "Homebrew" - "/opt/homebrew/Cellar/openjdk@17/17.0.14/libexec/openjdk.jdk/Contents/Home"
    1.8.0_412 (x86_64) "Zulu"    - "/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home"

记住这些路径。

(2)将 JDK 添加到 jenv

运行以下命令,把 JDK 版本添加到 jenv

jenv add /opt/homebrew/Cellar/openjdk@17/17.0.14/libexec/openjdk.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home

然后检查:

jenv versions

如果成功,会显示:

* system
  1.8
  17.0

3. 启用 Java 版本切换

(1)设置全局 Java 版本

如果你想全局使用 Java 17:

jenv global 17

如果你想全局使用 Java 8:

jenv global 1.8

(2)设置本地 Java 版本

如果你想在某个项目目录中使用特定的 Java 版本:

cd /path/to/project
jenv local 1.8  # 该项目使用 Java 8

如果要切回 Java 17:

jenv local 17

(3)设置 Shell 会话内 Java 版本

如果你只想在当前终端会话中临时使用 Java 8:

jenv shell 1.8

退出终端后会恢复默认版本。


4. 确保 JAVA_HOME 正确设置

启用 export 插件,使 jenv 自动管理 JAVA_HOME

jenv enable-plugin export
exec zsh  # 或者 source ~/.zshrc 让配置生效

然后检查 JAVA_HOME

echo $JAVA_HOME

如果你当前的 Java 版本是 1.8,应该显示:

/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home

如果是 17,应该显示:

/opt/homebrew/Cellar/openjdk@17/17.0.14/libexec/openjdk.jdk/Contents/Home

5. 验证 Java 版本

java -version

如果 jenv global 1.8

openjdk version "1.8.0_xxx" ...

如果 jenv global 17

openjdk version "17.0.xxxx" ...

总结

  1. 安装 jenv(如果还没安装)。
  2. 添加 JDK 路径到 jenvjenv add)。
  3. 启用 jenv 自动管理 JAVA_HOMEjenv enable-plugin export)。
  4. 切换 JDK 版本jenv global / jenv local / jenv shell)。
  5. 检查 Java 版本是否正确生效java -version)。

现在你可以自由切换 JDK 版本了 🚀

正文完
 0
bdspAdmin
版权声明:本站原创文章,由 bdspAdmin 于2026-01-25发表,共计1660字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)

摆渡资源站

文章搜索
一言一句话
-「
热门文章
某个货币持仓增长了一倍,但是 jing流入没有增加多少,为啥

某个货币持仓增长了一倍,但是 jing流入没有增加多少,为啥

  这通常是因为该货币的市值(价格)上涨抵消了持仓量的增加,或者存在某些“非交易性”的变动。 简单来...
2026比特币稳赚指南:顶级加密交易策略全揭秘!

2026比特币稳赚指南:顶级加密交易策略全揭秘!

    关键要点 定投(DCA):仍是比特币长期积累的低风险和纪律性策略。 趋势交易和波段...
使用Java类库ta4j计算基金的布林轨

使用Java类库ta4j计算基金的布林轨

ta4j简介 对于做金融分析的从业者而言,python的ta-lib是不可或缺的技术分析库,具有简单易用、功能...
全真早晚功课简介

全真早晚功课简介

         道教的斋醮仪式很多,主要的日常宗教活动是早晚功课经。凡是道教徒每天都要上殿唪诵,所...
吕祖朝科

吕祖朝科

  举步朝金阙    飞身谒玉京  天外琳琅响    齐举步虚声   步虚  宝座临金殿    霞光...
最新评论
333985 333985 每天都在战争,希望2026和平.
最新文章
普通异步、守护定时和关键定时 线程池

普通异步、守护定时和关键定时 线程池

  这段配置通过区分普通异步、守护定时和关键定时三种模式,很好地覆盖了后端开发中的典型并发场景。 以...
同步和非阻塞关系

同步和非阻塞关系

背景 同步(Synchronous):意味着“内核拷贝数据到用户空间”这个动作,必须由用户线程自己来完成。 非...
nio当数据来了,是由哪个线程读取的

nio当数据来了,是由哪个线程读取的

背景   多路复用:线程调用 selector.select()。这个方法会询问内核:我管辖的这一千...
nio的线程是什么?

nio的线程是什么?

背景 IO 的各种流是阻塞的。这意味着,当一个线程调用 read() 或 write()时,该线程被阻塞,直到...
女生的生理期和非生理期的对于男生的态度差别好大,连性兴趣都变了

女生的生理期和非生理期的对于男生的态度差别好大,连性兴趣都变了

  这是一个非常普遍且具有生物学依据的观察。女生的这种“判若两人”,其实背后有一套非常精密的激素驱动...