I'm a tree and wating for the spring!

【转】Mac 下的 Java 版本管理工具 jenv

★作者:星星仔   |  ★类别: MacOS   |  ★发布时间: 2019-03-16 21:09   |  ★更新时间: 2019-03-16 22:08   |  ★浏览次数:888   |  ★ 评论(0)

我们经常会在 Mac 中安装不同的 JDK 版本。默认 OSX 自带的版本是 JDK 1.6,但后来我们可能还会安装 1.7。最近又升级到了 1.8.0.101。


而且不同的 JDK 版本下载的地方都不太一样,Java 6 在Apple下载,7 和 8 要从 Oracle 下载。


所以你的系统中可能同时存在 3 个以上版:1.6、1.7、1.8。如果你的系统和笔者一样是 Yosemite,那么你会在 /System/Library/Java/JavaVirtualMachines/ 目录下找到系统内置的 Java 版本:


$ ls /System/Library/Java/JavaVirtualMachines/ 

1.6.0.jdk



在 /Library/Java/JavaVirtualMachines/ 文件夹下找到后两个版本:


$ ls /Library/Java/JavaVirtualMachines/

jdk1.7.0_71.jdk     jdk1.8.0_101.jdk



如果你不是通过系统偏好中的 Java 控制面板进行升级,那么你需要手动配置 JAVA_HOME,以指定不同的Java版本。否则,当你安装完新版本 JDK 后,你会发现 java -version 命令显示的仍然还是升级之前的版本。而手动配置 JAVA_HOME,还是比较麻烦的。


这样,就轮到本文的主角出场了。


正其所宣称的,jenv 是一个专门用于配置 JAVA_HOME 环境变量工具。你可以用它来管理 Mac 上的 Java 版本。


1. 安装 jenv

命令 $ brew install jenv,安装完成后你需要配置一下 jenv:


$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile

$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile



这将在 ~/.bash_profile 文件中追加一个 export 命令和 eval 命令。前者追加 jenv 的路径到环境变量 PATH 中,后者执行 jenv init -命令。这样每打开一个 bash 终端窗就可以调用 jenv 命令,并且默认执行一次 jenv init - 命令了。


2. 查看 java 版本

可以用 jenv -versions 命令查看一下当前 java 版本:


$ jenv versions

* system (set by /Users/kmyhy/.jenv/version)



可以看到 jenv 只列出了系统内置的 Java 版本(system),因为其它两个版本虽然安装了,但需要我们手动添加到 jenv 中,这样 jenv 才能管理它们。


3. 添加新的 java 版本

使用 jenv add 添加 JDK 1.7:


$ jenv add /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/

oracle64-1.7.0.71 added

1.7.0.71 added

1.7 added


还记得你的 JDK 1.7 安装目录吗,它是 /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk 目录。


再添加 JDK 1.8:


$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home

oracle64-1.8.0.101 added

1.8.0.101 added

1.8 added



记得把 1.8 的路径换一下,换成你自己的路径。


4. 删除 java 版本

你会发现添加新版本时,每个版本都会一次性自动加入 3 个不同版本,比如添加 1.8 的时候报告:


oracle64-1.8.0.101 added

1.8.0.101 added

1.8 added



我们没有必要保留这么多版本,其实它们都指向同一个 JDK,我们可以把 1.8 以外的两个版本删除:


$ jenv remove oracle64-1.8.0.101

JDK oracle64-1.8.0.101 removed

$ jenv versions

* system (set by /Users/kmyhy/.jenv/version)

  1.8

  1.8.0.101

$ jenv remove 1.8.0.101

...


这样就清爽多了。


5. 指定 Java 版本

这要用 jenv local 命令:


$ jenv local 1.8

$ jenv versions

  system

* 1.8 (set by /Users/kmyhy/.java-version)

  1.8.0.101


这样当前版本就变成 1.8 了,你可以看一下:


$ java -version

java version "1.8.0_101"

Java(TM) SE Runtime Environment (build 1.8.0_101-b13)

Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)


你要是想查看当前版本在硬盘上的哪个位置,可以用 jenv which java:


$ jenv which java

/Users/kmyhy/.jenv/versions/1.8/bin/java



这当然不是真实的路径,而是一个硬链接。你可以找到 /Users/kmyhy/.jenv/versions/ 目录,发现所有的 java 版本都被列在了这里,这些硬链接(相当于 windows 的快捷方式)都指向了对应的 java 安装目录。 

你还可以指定一个全局的版本:


$ jenv global 1.8


这样,默认的 java 版本就是 1.8 了。如果你想在某个项目中使用 1.6 版本,可以在项目文件夹下新建一个.java-version 文件,将文件内容编辑为 1.6.0.65 保存。这样,你进入这个文件夹时 jenv 会自动使用 1.6 作为当前版本(即 local 版本)。

--------------------- 

作者:颐和园 

来源:CSDN 

原文:https://blog.csdn.net/kmyhy/article/details/52764058 

请尊重他人的劳动果实,转载时务必注明出处! 请尊重他人的劳动果实,转载时务必注明出处!
转载请注明:文章转载自:桐星豆博客 [http://blog.txdou.com]
本文标题:【转】Mac 下的 Java 版本管理工具 jenv
本文地址:http://blog.txdou.com/article151
分享到QQ空间 分享到腾讯朋友

  • 注意:“桐星豆博客”只会以“回复”的身份出现,不会以“咨询”的身份出现在留言或评论中,凡是以“咨询”的身份出现的留言或评论均为他人盗用!
  • 本站用以回复网友评论的唯一名称是“桐星豆博客”,除此外均无效,网友不得用此名进行相应文章的评论或回复!
  • 用户言论只代表其个人观点,不代表桐星豆博客的观点或立场!
  • 非诚勿扰,请友好如实的评论,杜绝谩骂、人格攻击等一切伤人言论,请严格遵循中华人民共和国法律法规!
  • 桐星豆博客拥有最终解释权,如有网友违规,本站将有权删除或屏蔽违规评论,情节严重者账户加入黑名单、永久封IP并报司法部门严惩!
  • 您一旦参与评论本站则默认为您已经同意以上条款,否则“非诚勿扰”,谢谢合作!

您的姓名或昵称: 选填
您的E-Mail地址: ☆必填--仅站长可见
您个人网站地址: 选填 ( 如果填写,请务必加上 http:// 或 https:// 等等 )
留言内容:

验证码: 点击重新生成验证码  [ ctrl + enter ]

CopyRight © 2009-2020 by 桐星豆博客 All Rights Reserved.