在OS X管理多个Java版本

现在我写了不少Java。大部分时间我可以用Java7,但不幸的是一些时候仍然必须用Java6编写,因为他们需要在旧的RedHat服务器上运行。接下来,我还想试试Java 8。

但是,管理不同版本的Java一直有点痛苦,直到我发现jEnv

jEnv允许你用简单的命令切换到Java的不同版本。这种方式对于用过rbenvplenv的人来说很熟悉。

Homebrew安装jEnv:

1
brew install https: //raw .github.com /gcuisinier/jenv/homebrew/jenv .rb

那么你可以添加下列命令到你的.bash_profile,或等效的方案,以确保它始终可用:

1
if which jenv > /dev/null ; then eval "$(jenv init -)" ; fi

现在它已经安装好了,让我们看看它可以找到什么版本的Java:

1
2
$ jenv versions
* system ( set by /Users/ajones/ .jenv /version )

对于我来说,它只是发现系统的Java,但我确实有安装其他版本。星号是当前所选的版本。

不像rbenv和其他同类工具,jEnv无法安装任何版本的Java,所以我们自己必须安装它们,将jEnv指向它们。

Apple webiste下载Java6来安装。它将被安装到Apple webiste。 用下面的命令来把它添加到jEnv:

1
2
$ jenv add /System/Library/Java/JavaVirtualMachines/1 .6.0.jdk /Contents/Home/
oracle64-1.6.0.65 added

运行 jenv versions 将看到:

1
2
3
$ jenv versions
* system ( set by /Users/ajones/ .jenv /version )
   oracle64-1.6.0.65

到目前为止,一切都很不错。让我们从Oracle下载并安装Java 7。这次他被安装到/Library/Java/JavaVirtualMachines/,所以用下面的命令把它添加到jEnv:

1
jenv add /Library/Java/JavaVirtualMachines/jdk1 .7.0_67.jdk /Contents/Home/

最后,Java8也可以从Oracle安装,用Homebrew Cask更好点:

1
brew cask install java

它将被安装到和Java 7相同的位置,因此以相同的方式添加它。

所以,现在我们有三个不同的Java安装版本,让我们来看看如何使用它们。

要选择一个版本,运行jenv local [version],例如:

1
2
3
4
5
$ jenv local oracle64-1.6.0.65
$ java -version
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)

您可以使用jenv global [version]来设置默认版本,并通过运行jenv which java显示Java可执行文件的完整路径。

可能我最喜欢的jEnv的特点是用.java-version文件在特定目录设置Java版本。所以,我需要Java6的项目,我保存一个内容是oracle64-1.6.0.65的.java-version文件,当我进入该目录,jEnv将设置本地Java版本。

就是这样。我们现在有多个版本的Java,并可以在它们之间轻松切换。 jEnv也有一些其他的功能,如Gradle,Ant,Maven的wrapper,等等,并能偶设置全局或局部JVM选项。查看文档 以获取更多信息。

原文链接:  andrew-jones  翻译:  ImportNew.com  孟 涛
译文链接:  http://www.importnew.com/14866.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值