jenv 一款macos下的开源JAVA多版本环境安装管理切换工具

news2024/9/24 3:18:04

一个用于macos/linux下的多版本JAVA环境管理工具 -- jenv,  这款工具和 pyenv 类似,都是基于shell脚本开发的. 可以方便的管理 多个java环境版本.  

jenv安装

git clone https://gitee.com/tekintian/jenv.git ~/.jenv

jenv环境配置

将下面的代码加入都你的 ~/.bash_profile文件中即可

###### java env
# jenv安装: git clone https://gitee.com/tekintian/jenv.git ~/.jenv
export JENV_ROOT="$HOME/.jenv"
# 如果目录中存在bin文件夹,则将PATH增加到当前$PATH 和初始化jenv
if [[ -d $JENV_ROOT/bin ]]; then
  export PATH="$JENV_ROOT/bin:$PATH"
  eval "$(jenv init -)"
fi

jenv可用命令列表

Some useful jenv commands are:
   commands    List all available jenv commands
   local       Set or show the local application-specific Java version
   global      Set or show the global Java version
   shell       Set or show the shell-specific Java version
   rehash      Rehash jenv shims (run this after installing executables)
   version     Show the current Java version and its origin
   versions    List all Java versions available to jenv
   which       Display the full path to an executable
   whence      List all Java versions that contain the given executable
   add         Add JDK into jenv. A alias name will be generated by parsing "java -version"
   remove      Remove JDK installations

See `jenv help <command>' for information on a specific command.

将java增加到jenv进行管理

jenv add 你的java的home路径

macos系统中,如果我们使用的是pkg安装包安装的java环境,则默认的安装路径应该都在这个文件夹下  /Library/Java/JavaVirtualMachines/  

如 将liberica-jdk-8-full.jdk这个jdk增加到jenv中,使用以下命令:

jenv add /Library/Java/JavaVirtualMachines/liberica-jdk-8-full.jdk/Contents/Home

注意这里的路径是你的JDK的home文件夹所在的路径, 需要根据你的JDK实际情况修改

增加后是这样

添加到jenv后就可以使用jenv global   local 等命令来设置全局或者本地的jdk环境变量了.

jenv目录结构 和JAVA_HOME路径

后面你在使用的时候就可以直接使用  ~/.jenv/versions/1.8  来作为你的JDK 1.8的JAVA_HOME路径, jevn会自动帮你处理小版本的引用问题, 其他版本类似.

设置全局/本地默认JDK版本:

全局JDK版本1.8:   jenv global 1.8

当前jdk版本21:   jenv local 21

这个需要先通过add增加才可以, 如 jenv add /Library/Java/JavaVirtualMachines/liberica-jdk-21.jdk/Contents/Home

在其他软件或者IDE中引用JDK21的JAVA_HOME就可以是  ~/.jenv/versions/21 

JDK发行版本推荐 

阿里发行的JDK版本https://dragonwell-jdk.io
国外的 https://bell-sw.com/pages/downloads
https://openjdk.org  

更多你自己去发现把....

总结: jenv 通过将我们本地安装的jdk版本做统一的管理,这给我们在多版本JDK的切换和引用都带来了极大的方便. 和 pyenv不同的是这里的jdk版本是需要你自己提前安装的,因为这个JDK的版本发行商太多,太杂. 这个工具就是版你管理各种发行商提供的JDK的版本.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2099629.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

堆垛机知识介绍:附图

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 完整版文件和更多学习资料&#xff0c;请球友到知识星球【智能仓储物流技术研习社】自行下载。 这份文件是关于堆垛机的介绍&#xff0c;内容包括堆垛机的概念、分类、工作原理、结构…

Vue(九) 全局事件总线、Todo案例应用全局事件总线、消息订阅与发布、Todo案例应用消息订阅、编辑Item、$nextTick

文章目录 一、全局事件总线 (GlobalEventBus)1. 总线前言2. 安装全局事件总线3. 使用总线事件4. 解绑总线事件 二、Todo案例应用全局事件总线三、消息订阅与发布1. 前言2. 使用步骤 四、Todo案例应用消息订阅五、Todo案例编辑Item六、$nextTick修改后的Todo完整代码 一、全局事…

【负载均衡】LoadBalance场景演示

服务端⾼并发分布式结构演进之路-CSDN博客文章浏览阅读976次&#xff0c;点赞11次&#xff0c;收藏9次。在进行技术学习过程中&#xff0c;由于大部分读者没有经历过一些中大型系统的实际经验&#xff0c;导致无法从服务端⾼并发分布式结构演进之路-----在进行技术学习过程中&a…

低代码技术:简化应用开发,推动数字化转型

在当今快速变化的技术环境中&#xff0c;企业面临着巨大的压力&#xff0c;需要快速响应市场需求并持续推动数字化转型。传统的应用开发方式往往复杂且耗时&#xff0c;开发周期长且需要大量的编程工作。为了应对这些挑战&#xff0c;低代码技术应运而生&#xff0c;为企业提供…

谈谈人工智能在中国:现状与未来展望

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已经成为推动全球经济和社会发展的关键力量。作为全球科技创新的重要参与者&#xff0c;中国在AI领域取得了令人瞩目的进展&#xff0c;并展现出强大的未来发展潜力。本文将深入分析中国AI的现状&#xff0c;…

XML简介 xml配置文件和properties配置文件对比

目录标题 一、XML简介二、XML配置文件和properties配置文件对比三、XML约束 一、XML简介 XML是EXtensible Markup Language的缩写&#xff0c;翻译过来就是可扩展标记语言。所以很明显&#xff0c;XML和HTML一样都是标记语言&#xff0c;也就是说它们的基本语法都是标签。 可…

windows下安装docker操作步骤

因为最近dockerb被封&#xff0c;下载资源太不方便了&#xff0c;所以还是自己本地安装上docker吧 下载的地址一定不要找错&#xff0c;是这里 https://docs.docker.com/desktop/install/windows-install/ 电脑--“控制面板”--“程序与功能”--开启windows功能 “Hyper-V”…

webSocket的自学案例

问&#xff1a; 请展示一个简单websocket案例&#xff1f; 回答&#xff1a; <!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><title>简单小例子</title></head><body><input type&quo…

记录游戏高光时刻!4款电脑录屏工具分享

虽然之前也录制过游戏&#xff0c;但是想来还是有不少朋友不知道如何录制一个高清游戏视频&#xff0c;我来和大家聊聊游戏直播和录屏的那些事儿。作为一个游戏主播&#xff0c;我尝试过很多录屏软件&#xff0c;今天就来分享一下我用过的四款录屏软件它们在录制游戏视频时的表…

Win32设备I/O详解

Windows设备 在Windows平台下&#xff0c;设备被定义为能够与之进行通信的任何东西。最常见的 I/O 设备包括&#xff1a;文件、文件流、目录、物理磁盘、卷、控制台缓冲区、磁带驱动器、通信资源、mailslot 和管道等。 平常我们使用的文件&#xff0c;目录都可以称之为设备。…

机床采集网关在汽车智能工厂中的应用及成效-天拓四方

随着工业4.0的浪潮席卷全球&#xff0c;智能化、数字化成为了制造业转型升级的关键词。在这一背景下&#xff0c;机床采集网关以其强大的数据采集、传输和处理能力&#xff0c;为企业的数字化转型提供了强有力的支持。本文将通过一个实际案例&#xff0c;详细介绍机床采集网关在…

数据结构:(LeetCode144)二叉树的前序遍历

给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,2,3] 解释&#xff1a; 示例 2&#xff1a; 输入&#xff1a;root [1,2,3,4,5,null,8,null,null,6,7,9] 输出&#xff1a;…

CUDA与TensorRT学习二:CUDA编程入门

文章目录 一、理解CUDA的grid和Block1&#xff09;第一个cuda项目 二、理解.cu和.cpp的相互引用及Makefile三、利用CUDA矩阵乘法(matmul)计算、Error Handle 及硬件信息获取1&#xff09;矩阵乘法2&#xff09;Error Handle3&#xff09;硬件信息获取 四、安装Nsight system an…

【APP自动化】Appium 环境搭建

1 基础环境 安装 node.js (1) 安装node.js 安装的是10版本&#xff0c;node-v10.16.0-x64&#xff0c;node.js安装比较简单&#xff0c;直接采用默认选项即可&#xff0c;路径的话&#xff0c;可以自己更改下。 (2) 添加Path环境变量 (3) 验证node.js是否安装成功 可以在CMD…

STM32 IIC

第一块&#xff1a;介绍协议规则&#xff0c;然后用软件模拟的形式来实现协议&#xff0c; 第二块&#xff1a;介绍STM32的IIC外设&#xff0c;然后用硬件来实现协议 因为IIC是同步时序的额&#xff0c;软件模拟协议也非常方便&#xff0c;像我们单片机一样&#xff0c;外挂芯…

零基础入门转录组数据分析——基因Wilcoxon秩和检验

零基础入门转录组数据分析——基因Wilcoxon秩和检验 目录 零基础入门转录组数据分析——基因Wilcoxon秩和检验1. 单基因Wilcoxon秩和检验的基础知识2. 基因Wilcoxon秩和检验&#xff08;Rstudio&#xff09;——代码实操2. 1 数据处理2. 2 基因Wilcoxon秩和检验2. 3 Wilcoxon秩…

FreeRTOS学习笔记—①堆与栈

在嵌入式系统中&#xff0c;堆与栈通常表示操作系统对进程占用的两种管理方式&#xff0c;而RTOS中栈更为重要&#xff0c;每一个链路都要有自己的栈。因此对堆和栈的概念进行了些区分和了解。以下是自己学习总结的一些&#xff0c;如有不对的地方请指正&#xff1a; &#xf…

算法打卡 Day25(二叉树)-修剪二叉搜索树 + 将有序数组转换为二叉搜索树 + 把二叉搜索树转换为累加树

文章目录 Leetcode 669-修剪二叉搜索树题目描述解题思路 Leetcode 108-将有序数组转换为二叉搜索树题目描述解题思路 Leetcode 538-把二叉搜索树转换为累加树题目描述解题思路 Leetcode 669-修剪二叉搜索树 题目描述 https://leetcode.cn/problems/trim-a-binary-search-tree…

elementUI——checkbox复选框监听不到change事件,通过watch监听来解决——基础积累

今天在写后台管理系统的时候&#xff0c;遇到一个需求&#xff0c;就是要求监听复选框的change事件&#xff0c;场景就是&#xff1a;两个复选框互斥&#xff0c;且可以取消勾选。 就是这两个复选框可以同时都不勾选&#xff0c;如果勾选的话&#xff0c;另一个一定要取消勾选。…

​如何通过Kimi强化论文写作中的数据分析?

在学术研究领域&#xff0c;数据分析是验证假设、发现新知识和撰写高质量论文的关键环节。Kimi&#xff0c;作为一款先进的人工智能助手&#xff0c;能够在整个论文写作过程中提供支持&#xff0c;从文献综述到数据分析&#xff0c;再到最终的论文修订。本文将详细介绍如何将Ki…