swiper0

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

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

软件介绍

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

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

使用方法

直接在终端中执行jenv会输出一个简单的文档

jenv帮助文档

图1 - 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版本

图2 - 添加java版本

查看可用版本

使用jenv version命令可以查看当前生效的版本以及使其生效的配置文件是哪个。比如下图2中输出的是我电脑中当前生效的版本。

当前生效的版本

图3 - 当前生效的版本

使用jenv versions命令可以查看当前jenv中所有可用的java版本,可以使用local、global或shell命令在指定范围内设置指定版本。

全部可用版本

图4 - 全部可用版本

设置生效版本

使用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

发表时间:2021-04-02 14:33:50

修改时间:2021-04-02 16:39:32

版权声明:本站原创,转载请附带本文链接

https://soft.iamhefang.cn/content/how-to-change-jdk-version-in-macos.html

发表留言

联系方式至少填一个,不会公开
不会公开