在玩MC的时候由于我电脑上安装的java版本过高,启动报错了,这时突然想到nodejs,python,都有自己的版本切换工具,java有没有呢?到网上一查还真有。
软件介绍
这个工具就是jenv
,如nodejs的nvm
和python的pyenv
一样,jenv
可以方便的切换本地的Java版本以方便运行或调试程序。
不过我感觉有一个不好的地方,就是它不支持自动下载java,需要手动安装以后使用add命令添加到jenv里面。
使用方法
直接在终端中执行jenv会输出一个简单的文档
官方直接输出的文档是英文的,我把它翻译了一下
jenv 0.5.4
用法: jenv <命令> [<参数>]
一些常用的jenv命令:
commands 列出全部jenv命令
local 显示或设置本地指定应用的java版本
global 显示或设置全局java版本
shell 显示或设置当前会话的java版本
rehash Rehash jenv shims (安装完后运行此命令)
version 显示当前应用的java版本和来源
versions 列出jenv中全部可用的java版本
which 显示指定命令的路径
whence 列出所有包含指定可执行文件的java版本
add 添加jdk到jenv中,将解析“java -version”输出并自动添加别名
使用`jenv help <命令>`可以查看具体的命令信息。
完整文档详见: https://github.com/jenv/jenv/blob/master/README.md
添加Java到jenv
使用jenv add 路径
命令可以把已经安装的java添加到jenv里面,在添加时jenv会自动执行java -version
并把所添加的jdk版本做为别名。jdk的安装包安装成功后会把文件放到 /Library/Java/JavaVirtualMachines/ 下面,比如使用下面的命令可以把openjdk-15.0.2版本添加到jenv
jenv add ~/Library/Java/JavaVirtualMachines/openjdk-15.0.2/Contents/Home
查看可用版本
使用jenv version
命令可以查看当前生效的版本以及使其生效的配置文件是哪个。比如下图2中输出的是我电脑中当前生效的版本。
使用jenv versions
命令可以查看当前jenv中所有可用的java版本,可以使用local、global或shell命令在指定范围内设置指定版本。
设置生效版本
使用jenv shell|local|global 版本或别名
可以设置当前生效的版本
- shell:表示只在当前shell会话生效
- local:表示在当前目录中生效
- global:表示全局生效
比如我在MC的可执行文件目录下使用下面的命令设置一遍java版本,以后再玩mc的时候会自动使用之前设置的版本。
jenv local 1.8
安装方法
jenv只支持MacOS和Linux。
安装
MacOS/Linux通用
下面的命令在MacOS和Linux通用
git clone https://github.com/jenv/jenv.git ~/.jenv
MacOS使用Homebrew
brew install jenv
配置
执行上面的命令安装完成以后还不能直接使用,还需要配置一下才能正常工作。
根据你使用的shell不同,配置方式也不同
使用
echo $SHELL
命令可以查看当前使用的shell。
Bash
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(jenv init -)"' >> ~/.bash_profile
Zsh
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc