首页 > 编程 > Java > 正文

mac配置JAVA_HOME最佳方法

2019-11-06 07:31:49
字体:
来源:转载
供稿:网友

1.安装jdk

这里就不用多说了吧,进入Oracle官网,选择mac系统的jdk进行下载,oracle官网提供的是dmg包,双击进行傻瓜式安装即可,我本机安装的是1.7和1.8。 1.6以前mac系统会自带的,现在新系统没有了,oracle官网也不提供mac版的jdk1.6的,如果有同学想要,可以去下面这个地址下载: http://download.csdn.net/download/zw_yuyan/8350587

2./usr/libexec/ 下的 java_home

在Mac OS X 10.5之后,在 /usr/libexec/ 路径下多了一个叫java_home文件,这是Mac上专门用来管理JAVA_HOME的文件,我们可以靠它轻松得到不同版本的JAVA_HOME,具体操作见下图。

1)打开终端,输入/usr/libexec/java_home,见图(1): 这里写图片描述

图(1)

很明显可以看出,java_home这个文件的作用是映射到了/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home(mac下的jdk都默认安装在/Library/Java/JavaVirtualMachines下面),得到了我安装的jdk1.8的JAVA_HOME。

2)再次在终端分别输入/usr/libexec/java_home -v 1.7/usr/libexec/java_home -v 1.8,如图(2): 这里写图片描述

图(2)
可以看到,通过-v+版本号,得到了不同版本的JAVA_HOME,这就是/usr/libexec/java_home的方便之处。

3.配置JAVA_HOME

熟悉linux的同学都知道,为了方便切换和查找JAVA_HOME,我们一般把JAVA_HOME写进.bash_PRofile中,.bash_profile文件一般在自己的home目录下,如果没有新建一个就可以了(.开头的文件一般情况下是隐藏的。 早期的OS X(10.6~10.8)系统可以使用如下两条命令来开始或者关闭系统隐藏文件的显示:

defaults write com.apple.Finder AppleShowAllFiles Yes && killall Finder //显示隐藏文件defaults write com.apple.Finder AppleShowAllFiles No && killall Finder //不显示隐藏文件

当升级到OS X 10.9 Mavericks版本之后,这两条命令需要做一些修改,变成了如下命令:

defaults write com.apple.finder AppleShowAllFiles Yes && killall Finder //显示隐藏文件defaults write com.apple.finder AppleShowAllFiles No && killall Finder //不显示隐藏文件

1)编辑/创建 .bash_profile(mac中/etc/profile文件是只读属性,而且不支持chmod,所以不建议去修改它),在终端输入cd ~,输入vim .bash_profile,如下图(3): 这里写图片描述

图(3)
2)编辑.bash_profile: 首先设置好个版本的jdk路径(用/usr/libexec/java_home的方式,方便管理),比如:

export JAVA_7_HOME="/usr/libexec/java_home -v 1.7"export JAVA_8_HOME="/usr/libexec/java_home -v 1.8"

3)设置一个默认的JAVA_HOME:

export JAVA_HOME=$JAVA_8_HOME

然后按ESC,用wq的方式保存退出(基本的linux操作应该都会吧)。 完整文本如图(4): 这里写图片描述

图(4)
4)任意切换JAVA_HOME: 需要切换为jdk7时:

export JAVA_HOME=$JAVA_7_HOME

查看是否成功:

$JAVA_HOME

需要切换为jdk8时:

export JAVA_HOME=$JAVA_8_HOME

查看是否成功:

$JAVA_HOME

效果如图(5): 这里写图片描述

图(5)

很明显,JAVA_HOME很简单地切换了。

奇怪的是,JAVA_HOME变了,java -version并没改变,我试着去改了添加jdk7的bin到PATH里,还是没用,我想应该是第一次安装jdk8的时候,jdk8的bin已经被写到PATH里了,所以每次系统在PATH中搜索到java命令的时候,就直接调用这个java命令了,所以java的版本一直是1.8,具体怎么改,我目前没有好的办法,如果哪位同学有好办法,希望一起分享一下。

其实不用改也没关系,系统上的java版本应该是用来启动一些软件的,由于有向下兼容熟悉,所以一般是越高越好。 在开发中,jdk一般会让你自己选择,这时可以在终端输入/usr/libexec/java_home -v 1.x来查看对应版本号的JAVA_HOME目录,选择该目录下的JAVA_HOME就行了。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表