jenv的安装和使用

很久之前写过一篇《pyenv的安装和应用》,没想到现在也要去安装一个Java的版本管理器,不过在本人看来这是一件好事,因为这侧面说明Java一直都在与时俱进,本篇主要记录jenv的安装和使用。

安装jenv

本人按照习惯采用homebrew安装,命令如下:

1
$ brew install pyenv

安装好可以查看版本:

1
$ jenv --version

接下来进行必要的Bash配置:

1
2
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile

Zsh采用:

1
2
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(jenv init -)"' >> ~/.zshrc

jenv安装Java

查看自己电脑已经安装的版本,:

1
2
$ cd /Library/Java/JavaVirtualMachines
$ ls

现根据存在的版本在jenv安装(说是安装其实只是连接)不同JDK版本,比如现在本人将安装1.7,命令如下:

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

此时输出:

1
ln: /Users/yin/.jenv/versions/oracle64-1.7.0.80-ea: No such file or directory

将之前的命令前添加sudo也无济于事,解决的办法是将终端重启或者新开一个窗口

再次输入命令,窗口打印出:

1
2
3
oracle64-1.7.0.80-ea added
1.7.0.80-ea added
1.7 added

这里出现了三个版本名字,不知道有何意义,不过似乎可以尝试删除其中多余的名字。

现在可以查看当前jenv下存在的版本了,使用命令:

1
$ jenv versions

同样的方法将1.6和1.8版本的JDK“安装”到jenv。

jenv使用

这里可以进行两种设置

  • 设置全局版本

使用全局版本的方法是在shell中运行命令:

1
$ jenv global 1.7

全局版本最好不要设置为System,在给jar包传递命令行参数时产生了无效路径的bug。

  • 设置局部版本

在这里本人新建了一个文件夹jenvtest,进入该文件夹,然后运行:

1
$ jenv local 1.8

此时运行java -version命令发现在该文件夹环境下版本是1.8.0_171版本,当在其它文件夹下运行时是1.7.0_80-ea(即本人电脑上默认的系统版本)。

取消 & 删除设定

jenv和pyenv一样,可以取消local设定:

1
$ pyenv local --unset

删除jenv与本地版本的关联可以采用下面的方式实现:

1
$ jenv remove [版本号]

参考