Java 多版本共存工具 - Jenv

·194 字·1 分钟
Java version
n3xtchen
作者
n3xtchen
Sharing Funny Tech With You

你肯定遇到过,开发新的应用的时候需要使用新版本,但是你想要为你原先的 Java 项目 保留旧的 Java 版本。似乎我需要一个类似 rbEnv 这样的工具(Ruby 版本切换工具)…… 祭出 Java 版的。

通过 Google 搜索,最符合预期的就是 Jenv - 一个用来设置 JAVA_HOME 的命令行工具。

Os X 下安装 #

前提,你已经安装了 HomeBrew(如果你还没有,可以参考 Mac 骇客指南 - 自动化配置);

首先,你需要安装多版本 Java

ichexw → brew tap caskroom/versions
ichexw → brew cask install java7
ichexw → brew cask install java	# 安装当前最新的 Java 8

你可以使用各自版本的 JAVA_HOME:

ichexw → /usr/libexec/java_home -v 1.8
/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home
ichexw → /usr/libexec/java_home -v 1.7
/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home

第二步,安装今天的主角 Jenv

ichexw → brew install jenv	

添加如下行到你的 Shell 启动脚本中:

ichexw → echo “# Init jenv\nif which jenv > /dev/null; then eval "$(jenv init -)"; fi” >> ~/.bash_profile // 我使用的是,这里使用的就是 ~/.zshrc

第三步,配置 Jenv:

jEnv 不能安装 JDK,所以我们需要告诉 Jenv 去哪里寻找 JAVA。键入如下命令,把我们安装 JDK 注册到 Jenv 中:

ichexw → jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home
ichexw → jenv add /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home

最后,你运行如下命令,查看登记的版本:

ichexw → jenv versions
* system (set by /Users/ichexw/.jenv/version)
  1.7
  1.7.0.80
  1.8
  1.8.0.112
  oracle64-1.7.0.80
  oracle64-1.8.0.112

星号说明是当前使用的版本

使用 #

首先,我们先设置全局的 JDK 版本,因为我们大部分项目使用 1.7,所以我们就把全局设置成 1.7 版本的:

ichexw → jenv global oracle64-1.7.0.80

然后,我在我的 Java8 的项目目录中,设置本地 JDK 模式:

ichexw → jenv local oracle64-1.8.0.112

你会在你的项目跟目录中找到 .java-version 的文件:

ichexw → cat .java-version
oracle64-1.8.0.112

你只要进入这个目录,就会自动把 JDK 设置成 Java8 的,是不是智能。而且,它不会拖慢 Shell

之前有使用一个国人的项目 linux-china/jenv,他也是改写 jEnv,还增加了安装的功能,很强大,把 Shell 弄的好慢,果断弃用。

另外,Jenv 也适用于 Unix/Linux,只是没有那么方便的安装命令,有时间我也分享一下。

祝大家玩的愉快,免受版本之苦。

引用自: * Install Multiple Java Versions on Mac * jEnv 项目主页