Java 的 JDK 多版本管理与常用命令(JEnv、SDKMAN、Jabba)

这篇具有很好参考价值的文章主要介绍了Java 的 JDK 多版本管理与常用命令(JEnv、SDKMAN、Jabba)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、简介

  • 比较常用的 Java JDK 版本管理工具有 JEnvSDKMAN,而 Jabba 是一个比较新的工具,它是跨平台的 Java 版本管理工具,它是受 Node.jsnvm 启发,所以 Jabbanvm 的使用方式几乎一致。

二、区别

  • JEnv
    • 地址:https://github.com/jenv/jenv
    • 作者:Gildas Cuisinier
    • 开发语言:Shell

    特点:

    • JEnv 是一个简单而强大的命令行工具,用于在不同的 Java 版本之间进行切换。
    • JEnv 可以管理全局和项目特定的 Java 版本,并且可以在不同的项目之间切换。
    • JEnv 不能直接安装JDK,需要用户自行安装 JDK 版本,并将其添加到 JEnv 的管理列表中。
    • JEnv 支持跨平台(Mac、Linux、Windows)。
  • Jabba
    • 地址:https://github.com/shyiko/jabba
    • 作者:Oleg Shyiko
    • 开发语言:Go

    特点:

    • Jabba 是一个用于安装和管理不同 Java 版本的命令行工具。
    • Jabba 可以轻松地安装和管理多个 JDK 版本,并且可以在不同项目之间进行切换。
    • Jabba 提供了简单易用的命令行接口来安装、卸载和切换 JDK 版本。
    • Jabba 支持跨平台(Mac、Linux、Windows)。
  • SDKMAN
    • 地址:https://github.com/sdkman/sdkman-cli
    • 作者:Marcin Erdmann
    • 开发语言:Groovy

    特点:

    • SDKMANSoftware Development Kit Manager)是一个通用的软件开发工具包管理器,不仅仅限于 Java
    • SDKMAN 可以用来安装和管理多种不同的开发工具,包括 JDK 和其他构建工具(如 GradleMaven)。
    • SDKMAN 提供了一个简单的命令行界面,使用户能够轻松地安装、卸载和切换不同的开发工具。
    • SDKMAN 支持跨平台(Mac、Linux、Windows)。

三、安装

  • Mac 可以通过 HomeBrew 安装的可以看下 HomeBrew 安装详细流程。

  • 所有版本的安装这里都有:Java JDK使用 SDKMAN、JEnv 和 Jabba 安装配置及版本切换,步骤挺简单的,或者可以直接按照上面区别中的 Github 地址直接进去看官方文档安装,基本一致也不繁琐。

    JEnv 算是绝对的轻量级,可以优先考虑,只是需要手动安装版本,但是也挺简单的,而且本地版本一般也不会安装很多,博主选的这个。

  • 版本是否切换成功,可以查看下版本

    $ java -version
    
  • 卸载 JDK:Mac 卸载非 JDK 管理工具安装的 Java JDK。

四、SDKMAN 使用细节

  • sdkman 官网中有安装与卸载教程。

  • 常用指令

    # 查看 sdkman 版本
    $ sdk version
    
    # 查看 sdkman 版本
    $ sdk current
    
    # 查看 sdkman 使用的当前 java 版本
    $ sdk current java
    
    # 更新本地 sdkman 缓存
    $ sdk update
    
    # 强制升级 sdkman
    $ sdk selfupdate force
    
    # 列出可用的 java 版本,还可以列出别的平台 $ sdk list maven
    $ sdk list java
    
    # 查看安装地址
    $ sdk home java 11.0.16-zulu
    
    # 安装指定版本
    $ sdk install java 11.0.16-zulu
    
    # 卸载指定版本
    $ sdk uninstall java 11.0.16-zulu
    
    # 将制定版本设为默认(全局) 
    $ sdk default java 11.0.16-zulu
    
    # 配置本地的版本(临时,本地目录)
    $ sdk use java 11.0.16-zulu
    

五、JEnv 使用细节

  • 安装好后,可以到 AdoptopenJDK 或 Oracle 下载需要的版本进行安装,AdoptopenJDK 可以下载到比较老的版本,Oracle 只能下最新的版本。

  • 查看本地所有 JDK 版本路径

    $ /usr/libexec/java_home -V
    
  • 常用指令

    # 诊断 jenv 是否配置成功
    $ jenv doctor
    
    # 添加一个 JDK 版本到 jenv 管理
    $ jenv add JDK路径
    $ jenv add /usr/local/Cellar/openjdk@11/11.0.17/libexec/openjdk.jdk/Contents/Home
    $ jenv add /usr/local/Cellar/openjdk@8/1.8.0+352/libexec/openjdk.jdk/Contents/Home
    $ jenv add /Library/Java/JavaVirtualMachines/openjdk.jdk/Contents/Home
    # 支持别名
    $ jenv add /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home oracle64-1.6.0.39 added
    
    # 查看管理的 JDK 版本
    $ jenv versions
    
    # 将制定版本设为默认(全局) 
    $ jenv global oracle64-1.6.0.39
    
    # 配置本地的版本(临时,本地目录)
    $ jenv local oracle64-1.6.0.39
    
    # shell 版本设置,给解释器(也就是这种类型的命令行窗口)设置使用指定的版本
    $ jenv shell oracle64-1.6.0.39
    
  • 切换版本后,可能还需要执行一行代码才会生效,如果切换版本生效了则不需要执行

    # 看版本对不对,不对则同步下环境配置
    $ java -version
    
    # 不对则执行一下这行,在输出一下版本
    $ source ~/.zshrc
    

六、Jabba 使用细节

  • 常用指令文章来源地址https://www.toymoban.com/news/detail-840034.html

    # 查看远程可以安装版本
    $ jabba ls-remote
    
    # 安装
    $ jabba install 1.8
    
    # 卸载
    $ jabba uninstall 1.8
    
    # 查看本地已安装版本
    $ jabba ls
    
    # 将制定版本设为默认(全局) 
    $ jabba alias default oracle64-1.6.0.39
    
    # 配置本地的版本(临时,本地目录)
    $ jenv use oracle64-1.6.0.39
    
    # 添加本地 JDK
    $ jabba link 别名@版本 本地JDK路径
    $ jabba link system@1.8 M:\GreenSoft\Java\jdk1.8.0_171
    
    # 过滤搜索版本
    $ jabba ls-remote zulu@~1.8.60
    $ jabba ls-remote "* @> = 1.6.45 <1.9"-- latest = minor
    
    # 通过指定 url 进行安装,支持: zip (since 0.3.0), tgz, tgx (since 0.10.0), dmg, bin, exe
    $ jabba install 1.8.0-custom=tgz+http://example.com/distribution.tar.gz
    $ jabba install 1.8.0-custom=tgx+http://example.com/distribution.tar.xz
    $ jabba install 1.8.0-custom=zip+file:///opt/distribution.zip
    

到了这里,关于Java 的 JDK 多版本管理与常用命令(JEnv、SDKMAN、Jabba)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • git版本管理:分支合并常用命令

    常用命令在这里:https://www.runoob.com/git/git-basic-operations.html 全部来自这个知乎专栏:杨世伟 git remote -v(这个命令没什么用) 默认执行git remote命令后会列出之前设置过的所有远端仓库的别名 展示当前关联的其他仓库列表 与上面的命令一样,但是输出会包含每一个仓库的URL.

    2024年02月03日
    浏览(38)
  • Java/JDK查看版本、历史版本对照

    在准备安装Android Studio时,需要查看以前安装的JDK是什么版本的。又想到初学Java时对Java版本和JDK版本各种称呼的迷惑。因此查了一些资料,这里做个记录。 查看电脑已安装的Java/JDK版本: 键盘按键win+R,打开快捷窗口,输入cmd,回车 在控制台输入命令Java --version,适用于新版

    2024年02月05日
    浏览(34)
  • Java和JDK的关系;以及JDK版本

    一、Java和JDK的关系: Java是一门面向对象的编程语言,而JDK(Java Development Kit)则是开发Java应用程序所需的软件开发工具包。Java语言本身与JDK之间存在紧密的依赖关系,具体如下: Java语言 :定义了语法、语义、数据类型、类库规范等编程规则,是编写Java程序的基础。 JDK

    2024年04月29日
    浏览(26)
  • Java JDK各版本特性

            Java 8 之前版本中有一些重要特性和改进。以下是其中一些主要特性以及它们发布版本: Java SE 7(发布于2011年): Switch 字符串:允许在 switch 语句中使用字符串。 泛型的类型推断:允许在实例化泛型时,不需要重复指定泛型参数类型。 改进的异常处理:引入了多

    2024年02月11日
    浏览(28)
  • mac 切换java jdk版本 java8 java11

    1.   终端执行命令  查看本地各版本jdk:mac通常默认安装了jdk1.8 安装目录是 /Library/Java/JavaVirtualMachines/ cd /Library/Java/JavaVirtualMachines/ ls 2.   上述命令列出的各版本目录名 后,在全局配置文件.bash_profile中新增上面命令列出的各版本jdk,并指定当前环境变量默认的版本为jdk1.8

    2024年02月16日
    浏览(42)
  • 【Java学习】-Java JDK 1.8与17版本比较

    Java Development Kit(JDK)是Java编程语言的开发环境。它包含了Java编译器(javac)、Java虚拟机(JVM)以及其他必需的工具和库。本文将比较JDK 1.8和17两个版本,分析它们的发展历史和地位,并探讨它们之间的差异和优势。 JDK 1.8,也称为Java 8,于2014年发布。它是Java平台自2006年以

    2024年02月16日
    浏览(32)
  • 多个 JDK 版本(Java 8、Java 17、Java 21)下载和切换

    随着 Spring Boot 的版本不断迭代更新,新发布的 Spring Boot 版本已经不再支持 JDK 8, 对 JDK 版本的最低要求为 17 。 所以,为了在实际中可以任意选择所需的 JDK 版本,将 多个 JDK 版本切换的方法 总结如下: JDK 不同版本可以在 Oracle 官网下载, 下载地址 :点此进入 选择所需的

    2024年02月03日
    浏览(40)
  • 如何实现Java JDK的多版本共存&&一键切换版本

    学习Java最一开始就是需要做环境配置啦,安装JDK是必不可少的。大家都知道JDK是Java开发者工具包,那么一般来说要选择什么样的版本来安装呢?可以安装多个JDK吗?是否可以我随时想切换哪个JDK就使用哪个呢? 下面我会主要说明如何实现Java JDK的多版本共存。 一般来说,企

    2024年04月17日
    浏览(36)
  • JDK8 和 JDK11 Java 两个主要版本的比较

    Java 是一门广泛应用于企业级应用和跨平台开发的编程语言。随着时间的推移,Java 不断演变和发展,版本之间有着许多新的功能和改进。本篇博客将重点关注 JDK 8 和 JDK 11 之间的区别,分析它们的新特性、性能改进和其他方面的差异。 一、性能改进: JDK 11 对性能进行了优化

    2024年02月09日
    浏览(29)
  • JDK8与JDK11:Java两个主要版本的比较

    在Java的世界里,JDK8和JDK11无疑是两个里程碑式的版本。它们在功能、性能和易用性上都进行了许多改进,使得Java开发者能够更高效、更轻松地开发出高质量的程序。在这篇文章中,我们将对这两个版本进行详细的比较,以帮助你更好地了解它们之间的差异。 1. 默认垃圾回收

    2024年03月10日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包