Java 多版本共存工具 - Jenv
·194 字·1 分钟
Java
version
你肯定遇到过,开发新的应用的时候需要使用新版本,但是你想要为你原先的 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,只是没有那么方便的安装命令,有时间我也分享一下。
祝大家玩的愉快,免受版本之苦。