Use windows terminal swtich environments

Use windows terminal swtich environments

之前写了个关于Cmder的相同的文章

Cmder是Windows命令行终端的一个很好代替,不光默认支持Git,甚至集成了一些Linux的工具命令。
最近因为使用GitUI,Cmder在调整窗口大小后基本就会图像错乱不能用了。但是Windows Terminal没有这个问题。
又发现最近Windows Terminal的功能不断增强。也可以很简单配置各个profile的启动时预置脚本,感觉启动还比Cmder快。
所以又写了这篇。唯一缺点就是注册右键菜单不是很方便

Windows Terminal Profile 配置

Windows Terminal本身就支持多配置文件功能可以用于环境切换。如下图

  1. 拷贝现有的命令提示符配置,追加IDEA202233新的配置
  2. 在命令行中设置中,添加启动时的执行脚本,配置环境变量,这里就简单把IntelliJ202233的路径设置一下
  3. 还可以更改图标,方便区分环境。当然还可以选择不同外观。

picture

注册特定配置为资源浏览器右键菜单

关键是这一步让很多人不想用Windows Terminal。没有从软件中直接支持。
其实是很简单的东西。希望马上可以支持。
网上很多文章有介绍原理。都懂,但是拿到自己机器上的时候就要好好看看。一步一步改。
所以就做了下面的添加,删除脚本。Windows 11的用户可以无脑使用。
不过,请注意以下脚本仅在Windows 11中测试。

  1. 添加:指定配置名称,就可以添加到右键菜单。可以指定ico图标文件,默认为cmd图标(因为WT的exe会随版本更新而路径不一样)
  2. 删除:列出已经添加右键菜单的配置名称,输入配置名称即可注销右键菜单。通过匹配菜单名称(以”Open Terminal”开头)来确定,如果自行修改脚本,请注意

picture

picture

抛砖引玉 - 利用Cmder对本地Java运行时环境的切换应用

抛砖引玉 - 利用Cmder对本地Java运行时环境的切换应用

多版本环境

做开发的朋友大多数都会有多个环境的切换困扰。通常一个好的运行时环境能有一个好的版本管理器比较重要。
就譬如NodeJs的nvm - 虽然这也是因为Node的版本升级实在太快,不得不出这么一个(不然就是噩梦)。
但是相对来说向前兼容性比较强的Java环境来说,这种需求不是很突出。所以这类版本管理在Java环境中就不是很常用。

不过相对于比较滞后的企业应用,Oracle对JDK的不断升级迭代,很多旧系统不得不跟随步伐,
很多商业软件也不得不跟随步伐的情况下。JDK的多版本环境的需求很多时候也是刚性的。

Cmder

Cmder是Windows命令行终端的一个很好代替,不光默认支持Git,甚至集成了一些Linux的工具命令。
除了UI,对于Windows系统上下文菜单的集成配置自由度也是相当的高。

思路

在安装多个JDK需要切换的时候,通常就是在指定程序的启动bat里面临时替换JAVA_HOME和PATH。
非常简单但是每次都要写一段,有时候需要改变运行时还需要改动。简单但是繁琐。
由于Cmder本身带有一个初始化script。理论上把JAVA_HOME和PATH的替换命令加进去就可以了。

做法

原理很简单,但是如何在一个工具中实现理论上的配置通常就是比较花时间的地方。
而且工具也可能有多个地方可以更改,如何找到最优的方法也是比较花时间。
下面是我个人认为最优的方法。无需编辑添加任何文件-直接在设置中添加。

  1. 打开Cmder设置,点击进入【启动-任务】设置

  2. 复制一个现有任务(以管理员打开cmder比较好),加上适当后缀,譬如jdk7

  3. 修改命令组内容,如下
    picture

    以下文本用于复制粘贴

    1
    *cmd /k %ConEmuDir%\..\init.bat&SET JAVA_HOME="C:\Java\jdk1.7.0_25"&SET PATH=C:\Java\jdk1.7.0_25\bin;%PATH%
  4. 点击进入【集成】设置

  5. 选取一个菜单项(譬如Cmder Here)后,更改菜单项名称(譬如 Cmder Here w/jdk7),命令(使用新建的jdk7任务),然后点击【注册】
    picture

确认

这样你会发现在Windows系统的上下文菜单(右键菜单)中多了一个【Cmder Here w/jdk7】。
在任意文件夹中右键点击该项,就会启动一个cmder的命令行窗口。
picture
输入java -version 就可以确认到你预先设置好的Java环境了
picture

应用和TODO

上述是利用Cmder最基本的【在文件夹中打终端】功能,实现在特定PATH下指定运行时打开命令终端。

  • 同理可以应用到任何一种基于PATH的运行时环境的切换。
  • Cmder还可以把选中文件作为参数传入。这个我还没尝试成功如何设置。
    理论上应该可以指定Java JDK版本运行选中bat。加上这个功能的话用着就更加舒服了。
    有朋友知道的话,希望分享一下设置方法,命令组内容。