如何优雅的切换环境变量(jdk+nodejs)

大家好,我是老 J

最近帮客户在做一个新的项目,客户要求新项目使用jdk17,毕竟现在jdk已经更新到jdk21了,再使用jdk8有点说不过去了,"Java8新特性"也成为过去时。。但是我平时还需要维护老项目,有的项目使用的是jdk8,还有的项目使用的是jdk11,所以平时开发的时候就需要频繁的切换jdk版本,非常麻烦!

那么有没有办法能够快速切换jdk环境呢?接下来我分享一个快速切换jdk环境的方法,顺便介绍一下怎么快速切换nodejs环境(nodejs有现成的版本管理工具,比较简单)。

jdk版本切换

首先需要我们的电脑有多个jdk版本(这里以Windows版本为例),jdk下载网址:

www.oracle.com/java/techno...

下载完成之后双击安装(一直下一步即可,这里略过)

完成安装之后我的电脑上就有了三个jdk版本:jdk(jdk8)、jdk11、jdk17

正常这个时候如果我们需要切换jdk版本需要修改系统的环境变量。步骤如下:

第一步,点击此电脑->属性->高级系统设置->环境变量,添加JAVA_HOME变量为jdk的路径如下图。

第二步,点击编辑PATH变量,添加 %JAVA_HOME%\bin 并且将其移动到最上方,注意这里一定要移动到最上方,因为jdk8向高版本切换之后会自动生成一个环境变量(不可见),这样导致我们切换回jdk8之后系统默认读取的版本还是高版本的,把 %JAVA_HOME%\bin移动到最上方之后每次系统读取就会优先读取到它!如下图。

如果我们需要切换jdk的时候只需要修改JAVA_HOME的值即可,如下图。

接下来重点来了,怎么把这一套流程变得更加优雅呢?写脚本!

写一个自动化切换jdk版本的脚本。这个脚本需要输入jdk的版本号,然后自动切换jdk版本,好了,需求有了,我的脚本是这么写的,大家可以直接复制:

bash 复制代码
@echo off
cls
echo ------------------------------------------------
echo 当前Java版本为:
java -version
echo ------------------------------------------------
echo 输入要使用的java版本对应的选项:
echo 选项   含义
echo 8      切换环境为JDK8
echo 11     切换环境为JDK11
echo 17     切换环境为JDK17
echo ------------------------------------------------
set /P choose=请输入选择:
IF "%choose%"=="8" (
    setx JAVA_HOME "D:\java\jdk" /M
    echo 已经修改为JDK8
) ELSE IF "%choose%"=="11" (
    setx JAVA_HOME "D:\java\jdk11" /M
    echo 已经修改为JDK11
) ELSE IF "%choose%"=="17" (
    setx JAVA_HOME "D:\java\jdk17" /M
    echo 已经修改为JDK17
) ELSE (
    echo 输入错误!
)
pause

这个脚本的首先输出当前系统的jdk版本,然后根据输入的版本号来匹配需要切换的版本,大家可以替换为自己的系统jdk路径,其中 /M 为修改系统环境变量。将这文本复制一个TXT文件中,然后修改后缀为 .bat,如图。

最后我们来测试一下脚本的功能:

首先查看系统当前的jdk版本。

然后右键脚本->管理员方式运行

输入版本号11点击回车我们可以看到jdk已经切换成功了!

验证一下:

至此,jdk一键切换就完成了!

nodejs版本切换

好了,介绍完jdk版本切换,nodejs怎么优雅的切换呢?这个就简单多了,因为nodejs有版本管理工具------nvm(Node Version Manager),接下来介绍nvm怎么安装使用。

nvm的下载地址如下:

github.com/coreybutler...

下载完成之后点击安装到合适的位置,一直点击next完成安装即可。

那么怎么切换nodejs版本呢?非常简单,下面是一些简单的指令:

xml 复制代码
安装特定版本的Node.js:nvm install <version>
切换到特定版本的Node.js:nvm use <version>
列出所有已安装的Node.js版本:nvm ls

例如我可以查看电脑现在的nodejs版本并切换。如下图。

我还可以安装别的版本并切换,如图。

怎么样,是不是比jdk切换简单多了!

更多文章干货,推荐公众号【程序员老J】

相关推荐
试行4 分钟前
Android实现自定义下拉列表绑定数据
android·java
茜茜西西CeCe10 分钟前
移动技术开发:简单计算器界面
java·gitee·安卓·android-studio·移动技术开发·原生安卓开发
Hello-Mr.Wang11 分钟前
vue3中开发引导页的方法
开发语言·前端·javascript
救救孩子把14 分钟前
Java基础之IO流
java·开发语言
小菜yh16 分钟前
关于Redis
java·数据库·spring boot·redis·spring·缓存
宇卿.22 分钟前
Java键盘输入语句
java·开发语言
浅念同学23 分钟前
算法.图论-并查集上
java·算法·图论
希冀12323 分钟前
【操作系统】1.2操作系统的发展与分类
后端
立志成为coding大牛的菜鸟.35 分钟前
力扣1143-最长公共子序列(Java详细题解)
java·算法·leetcode
鱼跃鹰飞36 分钟前
Leetcode面试经典150题-130.被围绕的区域
java·算法·leetcode·面试·职场和发展·深度优先