跳到主要内容

如何灵活进行JDK多版本自由切换?

· 5 分钟阅读 · - · - ·

在玩MC的时候由于我电脑上安装的java版本过高,启动报错了,这时突然想到nodejs,python,都有自己的版本切换工具,java有没有呢?到网上一查还真有。

软件介绍

这个工具就是jenv,如nodejs的nvm和python的pyenv一样,jenv可以方便的切换本地的Java版本以方便运行或调试程序。

不过我感觉有一个不好的地方,就是它不支持自动下载java,需要手动安装以后使用add命令添加到jenv里面。

使用方法

直接在终端中执行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

添加java版本

查看可用版本

使用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
该内容为何方原创,转载请注明本页地址
https://iamhefang.cn/soft/how-to-change-jdk-version-in-macos