
jEnv 可以用简单的命令切换到 Java 的不同版本,但无法安装任何版本的 Java ,所以我们自己必须安装它们,将 jEnv 指向它们。
Linux / OS X
$ git clone https://github.com/gcuisinier/jenv.git ~/.jenv Mac OS X via Homebrew
$ brew install jenv Bash
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(jenv init -)"' >> ~/.bash_profile # JAVA_HOME $ echo 'JAVA_HOME=`/usr/libexec/java_home`' >> ~/.bash_profile $ echo 'export JAVA_HOME' >> ~/.bash_profile Zsh
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc $ echo 'eval "$(jenv init -)"' >> ~/.zshrc # JAVA_HOME $ echo 'JAVA_HOME=`/usr/libexec/java_home`' >> ~/.zshrc $ echo 'export JAVA_HOME' >> ~/.zshrc 查看当前 Java 版本
$ echo $JAVA_HOME 另外可以使用 -V 选项列出所有版本的 JAVA_HOME :
$ /usr/libexec/java_home -V jEnv 安装和配置完成后,先安装 Java 包。
从 Apple webiste 下载 Java6 来安装。它将被安装到 Apple webiste 。 用下面的命令来把它添加到 jEnv :
$ jenv add /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home oracle64-1.6.0.39 added $ jenv add /Library/Java/JavaVirtualMachines/jdk17011.jdk/Contents/Home oracle64-1.7.0.11 added 运行 jenv versions 将看到:
$ jenv versions * system (set by /Users/ajones/.jenv/version) oracle64-1.6.0.39 oracle64-1.7.0.11 (set by /Users/hikage/.jenv/version) 让我们从 Oracle 下载并安装 Java 7 。这次他被安装到 /Library/Java/JavaVirtualMachines/,所以用下面的命令把它添加到 jEnv :
jenv add /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/
同样,我们也可以使用 Homebrew Cask 安装:
brew cask install java
它将被安装到和 Java 7 相同的位置,因此以相同的方式添加它。
列出当前系统已安装的 Java 版本
$ jenv versions system oracle64-1.6.0.39 * oracle64-1.7.0.11 (set by /Users/hikage/.jenv/version) 全局配置
$ jenv global oracle64-1.6.0.39 单个项目设置
$ jenv local oracle64-1.6.0.39 shell 设置
$ jenv shell oracle64-1.6.0.39 目前 github 有 2 个在 mac 上切换 Java 版本的解决方案,一个是国人的(有段时间没更新了, 2016.1.19 ),一个是老外的;
1 crystone 2016-01-19 16:24:53 +08:00 这个好,支持 |
2 xcaspar 2016-01-19 22:43:13 +08:00 export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home export JAVA_7_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home export JAVA_6_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home export JAVA_5_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home alias jdk5="export JAVA_HOME=${JAVA_5_HOME}" alias jdk6="export JAVA_HOME=${JAVA_6_HOME}" alias jdk7="export JAVA_HOME=${JAVA_7_HOME}" alias jdk8="export JAVA_HOME=${JAVA_8_HOME}" export JAVA_HOME=${JAVA_7_HOME} 切换 JDK 的时候,直接 jdk5 、 jdk6 、 jdk7 、 jdk8 |
3 hqs123 2016-01-20 08:35:54 +08:00 不错,学习下 |
5 pOH8 2016-01-20 21:13:29 +08:00 苹果有自己的管理工具,不需要 jEnv /usr/libexec/java_home -V #fish set -x JAVA_HOME (/usr/libexec/java_home -v 1.6) #zsh export JAVA_HOME=$(/usr/libexec/java_home -v 1.6) |
6 RangerWolf 2016-01-21 15:21:41 +08:00 想问下 为什么会有切换 Java 版本的需求? 好奇而已 |
7 nicky_hk 2016-01-21 18:47:50 +08:00 @RangerWolf 很正常。有些企业级软件升级的时候,依赖的 jdk 需要升级 |
8 RangerWolf 2016-01-22 09:13:57 +08:00 @nicky_hk 不好意思,还是不太理解, 那只需要保持最后 jdk 的版本也是最新的就好了啊? 相当于把之前的卸载重新安装一个最新版 |
9 DinoStray 2021-01-29 16:31:54 +08:00 为啥不支持直接安装不同版本的 jdk, 还需要先手动安装 |