在Mac上安装Java,之前都是在官方网站下载安装包,这样当然不怎么方便,所以自然就想到用homebrew安装了。查了一下,果然有办法,而且可以保持几个不同版本的JDK,方便不同版本测试。

这个方法就是使用jenv,这个东西是基于rbenv开发的,不同的是rbenv是为了管理ruby,jenv是为了管理java。用jenv之后,就不用设置什么$JAVE_HOME变量了。而且可以方便切换各种不同版本的JDK,方便调试。

主要步骤:

  • 安装 brew-cask
1
2
brew update
brew install caskroom/cask/brew-cask
  • 安装 jenv
1
2
3
brew install jenv
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc
  • 安装最新版本的Java
1
brew cask install java
  • 然后看看brew把Java安装到哪里去了,一般在如下位置
1
jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/
  • 然后在$HOME目录下加一个.java-version文件,里面写个1.8,结束。

下面具体谈谈具体细节。

首先Jenv是用来干啥的?

主要是用来管理不同版本的Java的,什么Oracle JDK,OpenJDK等。可以去官网看看。

在OSX中所有JVM都安装在 /Library/Java/JavaVirtualMachines/下,所以上面第四步添加安装的版本到jenv中。

查看安装了那些JDK版本。

1
2
3
4
5
~ ᐅ jenv versions
system
* 1.8 (set by /Users/Spike/.java-version)
1.8.0.121
oracle64-1.8.0.121

配置全局版本号

1
$ jenv global oracle64-1.6.0.39

配置本地版本号

1
jenv local oracle64-1.6.0.39

配置Shell版本号

1
jenv shell oracle64-1.6.0.39

生成 Shims

jenv可以将所有安装过的Java版本中的bin目录集合管理,即~/.jenv/versions/*/bin/*中的所有东西都放到shims文件夹下。每次安装完新版本都运行jenv rehash即可。

1
$ jenv rehash

参考资料: