Loading... ``` # mac管理java版本 ## 安装各种java的版本 直接去网站https://www.oracle.com/cn/java/technologies/downloads/ 下载后缀是dmg的默认安装就行,如果你对文件的管理有兴趣可以下载压缩包自行解压,妨碍自己axing放的位置 这里一般用Oracle JDK ,OpenJDK没有用过所以就不做介绍了 ## 安装JDK Oracle JDK的安装的话一般分为官方下载和通过homebrew进行安装 ,官方链接目前提供8、11、16三个版本的下载。想下载6的话需要去另一个链接下载 使用homebrew进行安装的话分为以下两种情况(brew会安装openjdk): ``` ## 安装最新版的JDK ```shell brew cask install java ``` ## 安装指定版本的JDK ```shell brew tap homebrew/cask-versions brew search java brew install java* ``` 然后根据搜索的结果进行安装 查看JDK安装路径 ```shell /usr/libexec/java_home -V ``` ## 安装jenv 可以参考文章 https://segmentfault.com/a/1190000020083040 也可以按照下面的步骤来做,我使用的是brew去装的 ```shell $ brew install jenv ``` 然后配置 Shell 添加如下配置参数 查看你使用的是什么shell ```shell $ echo $SHELL ``` ```shell # 如果你是用的 bash 则执行下述命令 $ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(jenv init -)"' >> ~/.bash_profile ``` ```shell # 如果你是用的 zsh 则执行下述命令 $ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc $ echo 'eval "$(jenv init -)"' >> ~/.zshrc ``` 最后我们使用上述使用到的 /usr/libexec/java_home -V 命令罗列出已经安装的 JDK 路径: ```shell $ /usr/libexec/java_home -V Matching Java Virtual Machines (4): 12.0.1, x86_64: "OpenJDK 12.0.1" /Library/Java/JavaVirtualMachines/openjdk-12.0.1.jdk/Contents/Home 1.8.0_212, x86_64: "AdoptOpenJDK 8" /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home 1.6.0_65-b14-468, x86_64: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 1.6.0_65-b14-468, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home ``` 再使用 jenv add 命令挨个将上述路径添加即可: ```shell $ jenv add /Library/Java/JavaVirtualMachines/openjdk-12.0.1.jdk/Contents/Home $ jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home $ jenv add /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home ``` 完成上述配置后使用 JEnv 的 versions 命令查看已经被添加至 JEnv 管理的 JDK 版本: ```shell $ jenv versions system 1.6 1.6.0.65 1.8 1.8.0.212 12.0 * 12.0.1 (set by /Users/aige/.jenv/version) openjdk64-1.8.0.212 openjdk64-12.0.1 oracle64-1.6.0.65 ``` 如果看到我们添加的 JDK 6、JDK 8 和 JDK 12 被添加了则表明配置成功。这里需要注意的是,JEnv 会读取 JDK 的不同别名来作为显示。比如上面命令行中罗列出的 1.8、1.8.0.212 以及 openjdk64-1.8.0.212 其实指代的都是 JDK 8。而版本号左边带星号 “*” 的则表示当前执行 Java 命令后会使用到的 JDK 版本。比如上述命令行中 12.0.1 左边有星号,这时我们执行一个 java version 命令: ```shell AigeStudio@aige$ java -version openjdk version "12.0.1" 2019-04-16 OpenJDK Runtime Environment (build 12.0.1+12) OpenJDK 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing) ``` 显示的就会是 JDK 12 的版本。 JEnv 的精髓是 shell、local 和 global 三个参数命令。shell 用于设置终端窗口生命周期内使用的 JDK 版本;local 用于设置当前目录下使用的 JDK 版本;而 global 用于设置全局使用的 JDK 版本。这三个命令的使用方式都一样: ```shell $ jenv shell/local/global 1.6 ``` 此时我们再执行 java version 命令就会显示使用的是 JDK 8: ```shell AigeStudio@aige$ jenv shell 1.8 AigeStudio@aige$ java -version openjdk version "1.8.0_212" OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_212-b04) OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.212-b04, mixed mode) ``` 注意:!!! shell 命令设置的 JDK 是终端窗口生命周期内有效的,即你一旦退出终端再次进入则会失效。而 local 命令则可以让你在某个目录下执行某个具体版本的 JDK: Configure global version ```bash $ jenv global oracle64-1.6.0.39 ``` Configure local version (per directory) ```bash $ jenv local oracle64-1.6.0.39 ``` Configure shell instance version ```shell $ jenv shell oracle64-1.6.0.39 ``` 最后修改:2025 年 05 月 27 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏