网站首页 > java教程 正文
前言
不知不觉 JDK13 发布已有两个月,不知道各位有没有下载学习体验一番?每次下载安装之后,需要重新配置一下 Java 环境变量。等到运行平时的项目又需要切回之前 JDK 版本,这又需要重新环境变量。这么重复配置显然非常低效,又不能灵活切换版本。
所幸通过万能 Google 找到解决方案,使用 jenv 管理 JDK 版本。
jenv 介绍
熟悉 Ruby 的同学,应该会觉得比较眼熟,jenv 就是 Java 平台的 rbenv 工具。
jenv 是一个命令行工具,可以在 Linux/OS X 平台使用,可以管理多个版本 JDK,方便在多个版本 JDK 之间切换,另外其还可以设置 JAVA_HOME 环境变量。
Windows 真的伤不起
使用 jenv 有一个前提,必须提前安装 JDK,其不提供下载安装 JDK 的功能。MacOSX 平台可以提前使用 brew 安装 JDK。
jenv 安装
手动安装
首先下载 jenv 源程序
git clone https://github.com/jenv/jenv.git ~/.jenv
然后再将 jenv 命令路径放入 Shell 配置文件中。
若使用 Shell 为 bash:
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile echo 'eval "$(jenv init -)"' >> ~/.bash_profile source ~/.bash_profile
若使用 Shell 为 zsh
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc echo 'eval "$(jenv init -)"' >> ~/.zshrc source ~/.zshrc
自动安装
若使用 MacOSX,可以直接使用 brew安装:
brew install jenv
jenv 校验
安装 jenv 之后,可以运行 jenv doctor检查是否正确安装。以下为我本机 MacOSX 输出:
刚安装小伙伴运行 jenv doctor ,可以观察到输出:
[ERROR] Java binary in path is not in the jenv shims.
这代表还未正确添加 JDK,需要运行下面指令添加 JDK。
jenv 配置
JDK 配置
运行 jenv add jdk_path,将 JDK 交给 jenv 管理。
可能有些小伙伴并不知道 JDK 安装路径,若是 MacOSX,JDK 是通过 Oracle 提供安装包或者通过 brew 安装,可以通过运行 /usr/libexec/java_home -V查找 JDK 路径。
若不是通过以上方式,或者为 Linux 平台,可以先通过 which java 或者 whereis java 找出命令路径。然后通过使用 ls -l 查看命名的实际路径。
JAVA_HOME 配置
有些应用程序将会读取系统 ${JAVA_HOME} 环境变量,通过安装 jenv 插件,切换 JDK 版本时,将会同步设置 ${JAVA_HOME} 变量。
jenv enable-plugin export ## 运行这个才会生效 exec $SHELL -l
jenv 使用教程
jenv versions
查看当前系统 jenv 管理所有 JDK 版本。
jenv versions
jenv local
通过上面命令,我们知道当前系统所有 JDK 版本之后,通过下面命令切换 JDK 版本。
JDK 版本切换 JDK1.7
jenv local 1.7
这里需要注意的,jenv local 切换 JDK 版本只对当前文件夹有效,如果切换到其他文件夹,将会切换会当前默认 JDK 版本。
jenv shell
使用 jenv shell 使切换的 JDK 版本对整个 Shell session 有效。重启 Shell 终端或重新打开新的 Shell 终端,该配置失效。
jenv shell 9.0
jenv global
jenv global 将会设置一个全局默认的 JDK 版本,即使重启 Shell 窗口,该配置也不会改变。
jenv global 9.0
jenv 小问题
上面几个是 jenv 经常使用的指令,若想了解 jenv 其他指令,可以通过 jenv commands 查找其他指令。
使用 jenv 过程可能会发现,当切换 JDK 版本之后, ${JAVA_HOME} 环境变量没有改变,还是上一个 JDK 版本配置。
这时可以运行 exec $SHELL -l , ${JAVA_HOME} 将会变成当前版本路径。
读者福利
对于很多初级Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。
整理的这些架构技术希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。同时我经过多年的收藏目前也算收集到了一套完整的学习资料,希望对想成为架构师的朋友有一定的参考和帮助。
下面是部分资料截图,诚意满满:特别适合有1-5年开发经验的Java程序员们学习。
资料免费领取方式:转发后,转发后关注我后台私信关键词【资料】获取!
而针对以上面试技术点,我在这里也做一些技术知识面试专题资料(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术资料)免费分享,希望能更好的帮助到大家。
资料免费领取方式:转发后,转发后关注我后台私信关键词【资料】获取!
猜你喜欢
- 2024-10-10 Log4j 爆“核弹级”漏洞,Flink、Kafka等至少十多个项目受影响
- 2024-10-10 重大消息:java 13 正式发布GA版本
- 2024-10-10 Java 21发布计划,正式开启!(招标计划发布 规定)
- 2024-10-10 我的世界:1.18种子数量增多了?疾跑变强!21w41a快照介绍
- 2024-10-10 Java 5 问世(JDK 1.5,采用新的版本控制系统)
- 2024-10-10 超赞!IDEA 最新版本,支持免打扰和轻量模式!
- 2024-10-10 3. Java 三大版本(java三个版本)
- 2024-10-10 重磅!Spring Boot 2.6 正式发布,一大波新特性,看完我彻底躺平了
- 2024-10-10 JavaWeb全新版本教程(javaweb入门教程)
- 2024-10-10 java的各版本的新特性(java的版本有哪些)
你 发表评论:
欢迎- 最近发表
-
- Java常量定义防暴指南:从"杀马特"到"高富帅"的华丽转身
- Java接口设计原则与实践:优雅编程的艺术
- java 包管理、访问修饰符、static/final关键字
- Java工程师的代码规范与最佳实践:优雅代码的艺术
- 编写一个java程序(编写一个Java程序计算并输出1到n的阶乘)
- Mycat的搭建以及配置与启动(mycat部署)
- Weblogic 安装 -“不是有效的 JDK Java 主目录”解决办法
- SpringBoot打包部署解析:jar包的生成和结构
- 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 你认为最简单的单例模式,东西还挺多
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)