<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: zeagur</title>
    <description>The latest articles on DEV Community by zeagur (@zeagur).</description>
    <link>https://dev.to/zeagur</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F500753%2F5f271bba-b3b8-49f2-b73d-2446c4edb793.jpg</url>
      <title>DEV Community: zeagur</title>
      <link>https://dev.to/zeagur</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zeagur"/>
    <language>en</language>
    <item>
      <title>Running multiple version of JDK in Windows commandLine, the fun? way</title>
      <dc:creator>zeagur</dc:creator>
      <pubDate>Mon, 26 Sep 2022 16:50:24 +0000</pubDate>
      <link>https://dev.to/zeagur/running-multiple-version-of-jdk-in-windows-commandline-the-fun-way-4goj</link>
      <guid>https://dev.to/zeagur/running-multiple-version-of-jdk-in-windows-commandline-the-fun-way-4goj</guid>
      <description>&lt;p&gt;In this blog I'll walk you through on how to config your various terminal to dynamically switch JDK version in a painless? and a bit cooler way right from your terminal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Table Of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Prepare JDK and prerequisites&lt;/li&gt;
&lt;li&gt;Command Prompt&lt;/li&gt;
&lt;li&gt;Powershell 5 &amp;amp; 7&lt;/li&gt;
&lt;li&gt;Cmder&lt;/li&gt;
&lt;/ul&gt;




&lt;blockquote&gt;
&lt;p&gt;why not use the wsl?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;yes, we can config it easily like we did in any bash in linux, which is cool 😁 and another great thing I found out recently about WSL is that it can execute windows binary file like those &lt;code&gt;exe&lt;/code&gt; directly from wsl terminal.&lt;/p&gt;

&lt;p&gt;Don't believe me? here's an example 😜&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I'll test on &lt;code&gt;oc&lt;/code&gt; cli that I'm using to do stuff with my openshift cluster as an example in this case.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;let's start with check where the &lt;code&gt;oc.exe&lt;/code&gt; is located&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Favr2nxd5uwffmcbdlmqj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Favr2nxd5uwffmcbdlmqj.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;test some command&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyd66i00938vbjh9u3dpy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyd66i00938vbjh9u3dpy.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;now switch to ubuntu wsl terminal and notice the &lt;code&gt;oc&lt;/code&gt; bin that belong to this ubuntu wsl&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgywvplwwvdkf0afhvli7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgywvplwwvdkf0afhvli7.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;let's test some command, we will noticed the &lt;code&gt;unauth&lt;/code&gt; response since I didn't share the config between windows/wsl&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa0yzh7m74bsni8i4eky8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa0yzh7m74bsni8i4eky8.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;now let's &lt;code&gt;cd&lt;/code&gt; into the windows folder with the &lt;code&gt;exe&lt;/code&gt; file we want to test, in order to access our windows file, the path will have to be pre-fix with &lt;code&gt;/mnt/&lt;/code&gt; and followed by normal drive letter without colon symbol&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;for example: /mnt/c/windows/system32/&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh4s0c3tijtsjnxzpcgcy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh4s0c3tijtsjnxzpcgcy.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;when call the &lt;code&gt;oc.exe&lt;/code&gt; file we'll notice the response returned normally instead of &lt;code&gt;unauth&lt;/code&gt; like the above command, this because we invoked the one that belong in windows env which is the same as we invoked in windows &lt;code&gt;cmd&lt;/code&gt;, amazing isn't it?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqzkzho3aow1qm8i7pgdg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqzkzho3aow1qm8i7pgdg.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;ok but that's not the point of this blog, if you're like me who don't like context-switching too much and only use it when neccessery, let's continue see what we can do to run multiple JDK in windows env.&lt;/p&gt;




&lt;h2&gt;
  
  
  🤖 Prepare JDK and pre-requisites
&lt;/h2&gt;

&lt;p&gt;usually when we installed JDK package through windows installer we'll ended up with something like this&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu9wy9q4j8jxxtke4ilyb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu9wy9q4j8jxxtke4ilyb.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and when we run the java version check it'll run one of these 3 depends on how you installed it, notice that I didn't set the &lt;code&gt;JAVA_HOME&lt;/code&gt; yet&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7uw1w1rlc54gpgi5ualq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7uw1w1rlc54gpgi5ualq.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;next, you'll need &lt;a href="https://docs.chocolatey.org/en-us/choco/setup#install-with-cmd.exe" rel="noopener noreferrer"&gt;chocolatey&lt;/a&gt; package manager for its &lt;code&gt;refreshenv&lt;/code&gt; utility, if you don't want to install chocolatey or other reason, you can get this util directly from &lt;a href="https://github.com/chocolatey/choco/blob/1.1.0/src/chocolatey.resources/redirects/RefreshEnv.cmd" rel="noopener noreferrer"&gt;chocolatey github&lt;/a&gt; then register the &lt;code&gt;bat&lt;/code&gt; in &lt;code&gt;PATH&lt;/code&gt; environment variable&lt;/p&gt;

&lt;p&gt;and that's it for preparation part.&lt;/p&gt;

&lt;h2&gt;
  
  
  💻 Command Prompt
&lt;/h2&gt;

&lt;p&gt;in order to do &lt;code&gt;alias&lt;/code&gt; or other custom command, we'll have to go extra miles(or Km) to config this &lt;code&gt;ol-cmd&lt;/code&gt; terminal(seriously, please replace it with something powerful Microsoft 😗)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose the location to store our new script files, in this case I'll use &lt;code&gt;cmd_script&lt;/code&gt; in my &lt;code&gt;%userprofile%&lt;/code&gt; to store it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkpbpmnj0c9k0qmzr7g6m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkpbpmnj0c9k0qmzr7g6m.png"&gt;&lt;/a&gt;&lt;br&gt;create new folder to use as script location
  &lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;add it to the &lt;code&gt;PATH&lt;/code&gt; by going to environment variable settings&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftwf2ikzi8lfwjwq4muae.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftwf2ikzi8lfwjwq4muae.png"&gt;&lt;/a&gt;&lt;br&gt;type &lt;code&gt;env&lt;/code&gt; in search bar
  &lt;/p&gt;




&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv0etbm5scwxvxz6y2t4o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv0etbm5scwxvxz6y2t4o.png"&gt;&lt;/a&gt;&lt;br&gt;click on &lt;code&gt;Environment Variable&lt;/code&gt;
  &lt;/p&gt;




&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fslgx2o4b02ynr2rlcivf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fslgx2o4b02ynr2rlcivf.png"&gt;&lt;/a&gt;&lt;br&gt;look for &lt;code&gt;PATH&lt;/code&gt; then edit it to add our script location we created earlier
  &lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;create new folder named &lt;code&gt;alias&lt;/code&gt; inside the script folder then add it to the &lt;code&gt;PATH&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F30g3drw9tfliiigu4033.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F30g3drw9tfliiigu4033.png"&gt;&lt;/a&gt;&lt;br&gt;alias folder will serve as our alias
  &lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;create new script called &lt;code&gt;usejdk.cmd&lt;/code&gt; or &lt;code&gt;usejdk.bat&lt;/code&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvfguszegm7wf3a02tm2r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvfguszegm7wf3a02tm2r.png"&gt;&lt;/a&gt;&lt;br&gt;create new script in the script folder
  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;the above process should be the same when you add &lt;code&gt;refreshEnv.cmd&lt;/code&gt; if you didn't use chocolatey&lt;/p&gt;
&lt;/blockquote&gt;




&lt;ul&gt;
&lt;li&gt;add the following script to the &lt;code&gt;usejdk&lt;/code&gt; bat file&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

@echo off

&lt;span class="nb"&gt;set &lt;/span&gt;&lt;span class="nv"&gt;JDK_VERSION&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;%~1

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="s2"&gt;"%JDK_VERSION%"&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;""&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;
  goto usage
&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="k"&gt;else if&lt;/span&gt; &lt;span class="s2"&gt;"%JDK_VERSION%"&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;"8"&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;
    &lt;span class="nb"&gt;set &lt;/span&gt;&lt;span class="nv"&gt;JAVA_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"C:&lt;/span&gt;&lt;span class="se"&gt;\P&lt;/span&gt;&lt;span class="s2"&gt;rogram Files&lt;/span&gt;&lt;span class="se"&gt;\E&lt;/span&gt;&lt;span class="s2"&gt;clipse Adoptium&lt;/span&gt;&lt;span class="se"&gt;\j&lt;/span&gt;&lt;span class="s2"&gt;dk-8.0.345.1-hotspot"&lt;/span&gt;
&lt;span class="o"&gt;)&lt;/span&gt;
GOTO :eof

:usage
ECHO Please &lt;span class="k"&gt;select &lt;/span&gt;your Java Version
ECHO Usage: useJDK &lt;span class="o"&gt;[&lt;/span&gt;version]
EXIT /B 1


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;change the JAVA_HOME path to suit your need and add addtional condition if you have more than 2 JDK&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Test the script if it's working correctly&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

C:&lt;span class="se"&gt;\U&lt;/span&gt;sers&lt;span class="se"&gt;\R&lt;/span&gt;ujra&amp;gt;usejdk 11

C:&lt;span class="se"&gt;\U&lt;/span&gt;sers&lt;span class="se"&gt;\R&lt;/span&gt;ujra&amp;gt;echo %JAVA_HOME%
&lt;span class="s2"&gt;"C:&lt;/span&gt;&lt;span class="se"&gt;\P&lt;/span&gt;&lt;span class="s2"&gt;rogram Files&lt;/span&gt;&lt;span class="se"&gt;\E&lt;/span&gt;&lt;span class="s2"&gt;clipse Adoptium&lt;/span&gt;&lt;span class="se"&gt;\j&lt;/span&gt;&lt;span class="s2"&gt;dk-11.0.16.101-hotspot"&lt;/span&gt;

C:&lt;span class="se"&gt;\U&lt;/span&gt;sers&lt;span class="se"&gt;\R&lt;/span&gt;ujra&amp;gt;java &lt;span class="nt"&gt;-version&lt;/span&gt;
openjdk version &lt;span class="s2"&gt;"1.8.0_345"&lt;/span&gt;
OpenJDK Runtime Environment &lt;span class="o"&gt;(&lt;/span&gt;Temurin&lt;span class="o"&gt;)(&lt;/span&gt;build 1.8.0_345-b01&lt;span class="o"&gt;)&lt;/span&gt;
OpenJDK 64-Bit Server VM &lt;span class="o"&gt;(&lt;/span&gt;Temurin&lt;span class="o"&gt;)(&lt;/span&gt;build 25.345-b01, mixed mode&lt;span class="o"&gt;)&lt;/span&gt;

C:&lt;span class="se"&gt;\U&lt;/span&gt;sers&lt;span class="se"&gt;\R&lt;/span&gt;ujra&amp;gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;noticed that even though we set the &lt;code&gt;JAVA_HOME&lt;/code&gt; the java runtime didn't changed, that's because it's registered in &lt;code&gt;PATH&lt;/code&gt; env, hardcoded. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fip0bkhzeqjf5qjaig0i0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fip0bkhzeqjf5qjaig0i0.png"&gt;&lt;/a&gt;&lt;br&gt;the hard-coded path env that we didn't touch earlier
  &lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;this can be solve in 2 ways

&lt;ol&gt;
&lt;li&gt;remove the jdk/bin path from our &lt;code&gt;PATH&lt;/code&gt; env then add a new one with &lt;code&gt;%JAVA_HOME%\bin&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;leave it be but move those down to the bottom of &lt;code&gt;PATH&lt;/code&gt; env then add the java home from &lt;code&gt;1.&lt;/code&gt; and move it up to the top

&lt;ul&gt;
&lt;li&gt;this method can be useful if you want to run something like &lt;code&gt;where java&lt;/code&gt; which will list all knows java binary in &lt;code&gt;PATH&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ol&gt;

&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9i32leoxhzu8vgkgz286.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9i32leoxhzu8vgkgz286.png"&gt;&lt;/a&gt;&lt;br&gt;the PATH env after some changes
  &lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;let's try again
```shell
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;C:\Users\Rujra&amp;gt;usejdk 11&lt;/p&gt;

&lt;p&gt;C:\Users\Rujra&amp;gt;echo %JAVA_HOME%&lt;br&gt;
"C:\Program Files\Eclipse Adoptium\jdk-11.0.16.101-hotspot"&lt;/p&gt;

&lt;p&gt;C:\Users\Rujra&amp;gt;java -version&lt;br&gt;
openjdk version "1.8.0_345"&lt;br&gt;
OpenJDK Runtime Environment (Temurin)(build 1.8.0_345-b01)&lt;br&gt;
OpenJDK 64-Bit Server VM (Temurin)(build 25.345-b01, mixed mode)&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; still not working 😾

- now let's check the `PATH`
```shell


C:\Users\Rujra&amp;gt;PATH
PATH=C:\Program Files\WindowsApps\Microsoft.WindowsTerminal_1.14.2282.0_x64__8wekyb3d8bbwe;%JAVA_HOME%\bin;[other path env blah blah blah];


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;noticed the %JAVA_HOME% in PATH? that's where our &lt;code&gt;refreshenv&lt;/code&gt; will come into play next&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;modify the &lt;code&gt;usejdk&lt;/code&gt; script with our long-awaited &lt;code&gt;refreshenv&lt;/code&gt; util
```shell
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;...&lt;br&gt;
) else if "%JDK_VERSION%" == "8" (&lt;br&gt;
    set JAVA_HOME="C:\Program Files\Eclipse Adoptium\jdk-8.0.345.1-hotspot"&lt;br&gt;
    refreshenv&lt;br&gt;
)&lt;br&gt;
...&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
- third?? time's a charm, I hope 😗.
```shell


C:\Users\Rujra&amp;gt;usejdk 11
Refreshing environment variables from registry for cmd.exe. Please wait...Finished..

C:\Users\Rujra&amp;gt;PATH
PATH="C:\Program Files\Eclipse Adoptium\jdk-11.0.16.101-hotspot"\bin;[other path env blah blah blah];

C:\Users\Rujra&amp;gt;java -version
openjdk version "11.0.16.1" 2022-08-12
OpenJDK Runtime Environment Temurin-11.0.16.1+1 (build 11.0.16.1+1)
OpenJDK 64-Bit Server VM Temurin-11.0.16.1+1 (build 11.0.16.1+1, mixed mode)


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;now it's working, WOW, so easy! 🤯 I almost had a migraine tbh🤷‍♂️.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  💠 Powershell 5 &amp;amp; 7
&lt;/h2&gt;

&lt;p&gt;In powershell, it's a bit easier to manipulate the env var/alias since everything is stored inside "special" &lt;code&gt;env:&lt;/code&gt; and &lt;code&gt;alias:&lt;/code&gt; PSdrive&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;why is it matters? because we will use these to help us switch between multiple JDK in a moment&lt;/p&gt;

&lt;p&gt;! important: before we proceed please make sure you have set the &lt;code&gt;PATH&lt;/code&gt; variable with &lt;code&gt;%JAVA_HOME%\bin&lt;/code&gt; at the top like we did in &lt;code&gt;CMD&lt;/code&gt; steps&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Environment Variable
&lt;/h4&gt;

&lt;p&gt;to display the current env we can do the following&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

PS C:&lt;span class="se"&gt;\U&lt;/span&gt;sers&lt;span class="se"&gt;\R&lt;/span&gt;ujra&amp;gt; &lt;span class="nb"&gt;dir env&lt;/span&gt;:

Name                           Value
&lt;span class="nt"&gt;----&lt;/span&gt;                           &lt;span class="nt"&gt;-----&lt;/span&gt;
ALLUSERSPROFILE                C:&lt;span class="se"&gt;\P&lt;/span&gt;rogramData
ChocolateyInstall              C:&lt;span class="se"&gt;\P&lt;/span&gt;rogramData&lt;span class="se"&gt;\c&lt;/span&gt;hocolatey


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;to query specific key, just add the key to path &lt;code&gt;dir env:\some_thing&lt;/code&gt; &lt;br&gt;
to query value only, add &lt;code&gt;$&lt;/code&gt; to env &lt;code&gt;$env:some_thing&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h4&gt;
  
  
  Alias
&lt;/h4&gt;

&lt;p&gt;to display Alias is the same as Env var&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

PS C:&lt;span class="se"&gt;\U&lt;/span&gt;sers&lt;span class="se"&gt;\R&lt;/span&gt;ujra&amp;gt; &lt;span class="nb"&gt;dir alias&lt;/span&gt;:

CommandType     Name                                               Version    Source
&lt;span class="nt"&gt;-----------&lt;/span&gt;     &lt;span class="nt"&gt;----&lt;/span&gt;                                               &lt;span class="nt"&gt;-------&lt;/span&gt;    &lt;span class="nt"&gt;------&lt;/span&gt;
Alias           % -&amp;gt; ForEach-Object
Alias           ? -&amp;gt; Where-Object
Alias           CFS -&amp;gt; ConvertFrom-String                          3.1.0.0    Microsoft.PowerShell.Utility


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;to query specific key, just add the key to path &lt;code&gt;dir alias:\some_thing&lt;/code&gt;&lt;br&gt;
to query value only, add &lt;code&gt;$&lt;/code&gt; to env &lt;code&gt;$alias:some_thing&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h4&gt;
  
  
  Steps
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;in order to persist configuration across terminal session we'll have to create a profile for powershell by do the following command&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;new-item&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$profile&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-itemtype&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-force&lt;/span&gt;&lt;span class="w"&gt;


&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;now open the profile in your favourite ide and add the following script&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="kr"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;java8&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; 
    &lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;Env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;JAVA_HOME&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"[your JDK ROOT PATH]"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="n"&gt;refreshenv&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="kr"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;java11&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; 
    &lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;Env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;JAVA_HOME&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"[your JDK ROOT PATH]"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="n"&gt;refreshenv&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="w"&gt;


&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;re-open your powershell and see if the function getting load normally, however on the first time you might ran into this problem&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;File&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;\WindowsPowerShell\Microsoft.PowerShell_profile.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;cannot&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;be&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;loaded&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;because&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;running&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;scripts&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;is&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;disabled&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;on&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;this&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;system.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;For&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;more&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;information&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;see&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;about_Execution_Policies&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;at&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;https:/go.microsoft.com/fwlink/&lt;/span&gt;&lt;span class="nf"&gt;?&lt;/span&gt;&lt;span class="nx"&gt;LinkID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;135170.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;At&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;line:1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;char:3&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'...\WindowsPowerShell\Microsoft.Powe ...
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess


&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;this &lt;a href="https://stackoverflow.com/a/26955050" rel="noopener noreferrer"&gt;stackoverflow&lt;/a&gt; answer give a great explanation on how to solve this issue without compromise much of your machine security&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;after powershell started successfully, now it's the time to test our little script&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\Rujra&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;java8&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Refreshing&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;environment&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;variables&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;registry&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;cmd.exe.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Please&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;wait...Finished..&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\Rujra&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;JAVA_HOME&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="nx"&gt;\bin&lt;/span&gt;&lt;span class="p"&gt;;[&lt;/span&gt;&lt;span class="n"&gt;other&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PATH&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;env&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blah&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blah&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blah&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\Rujra&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;JAVA_HOME&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;C:\Program&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Files\Eclipse&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Adoptium\jdk-8.0.345.1-hotspot&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\Rujra&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;java&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-version&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;openjdk&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;version&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"17.0.4.1"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;2022-08-12&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;OpenJDK&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Runtime&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Environment&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Temurin-17.0.4.1&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;build&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;17.0.4.1&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;OpenJDK&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;64-Bit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Server&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;VM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Temurin-17.0.4.1&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;build&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;17.0.4.1&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;mixed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;mode&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sharing&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;


&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;noticed that even with &lt;code&gt;refreshenv&lt;/code&gt; it didn't worked, this is because it refresh &lt;code&gt;cmd.exe&lt;/code&gt; and not &lt;code&gt;powershell.exe&lt;/code&gt; we'll have to come up with another solution&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;from previous test, we'll see that it didn't worked as we expected, so, let's try another method by modify our script as below&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="kr"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;java8&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; 
    &lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;Env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;JAVA_HOME&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"[your JDK ROOT PATH]"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;Path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;System.Environment&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="n"&gt;GetEnvironmentVariable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Path"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"Machine"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="kr"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;java11&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; 
    &lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;Env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;JAVA_HOME&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"[your JDK ROOT PATH]"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;Path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;System.Environment&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="n"&gt;GetEnvironmentVariable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Path"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"Machine"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="w"&gt;


&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;this will replace &lt;code&gt;refreshenv&lt;/code&gt; with manually load new env var from the machine env var to current &lt;code&gt;powershell&lt;/code&gt; session&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;now let's close and re-open &lt;code&gt;powershell&lt;/code&gt; and see if this time it working correctly.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\Rujra&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;JAVA_HOME&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="nx"&gt;\bin&lt;/span&gt;&lt;span class="p"&gt;;[&lt;/span&gt;&lt;span class="n"&gt;other&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PATH&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;env&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blah&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blah&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blah&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\Rujra&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;java&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-version&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;openjdk&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;version&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"17.0.4.1"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;2022-08-12&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;OpenJDK&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Runtime&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Environment&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Temurin-17.0.4.1&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;build&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;17.0.4.1&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;OpenJDK&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;64-Bit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Server&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;VM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Temurin-17.0.4.1&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;build&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;17.0.4.1&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;mixed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;mode&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sharing&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\Rujra&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;JAVA_HOME&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\Rujra&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;java11&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\Rujra&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;C:\Program&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Files\Eclipse&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Adoptium\jdk-11.0.16.101-hotspot\bin&lt;/span&gt;&lt;span class="p"&gt;;[&lt;/span&gt;&lt;span class="n"&gt;other&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PATH&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;env&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blah&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blah&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;blah&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\Rujra&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;JAVA_HOME&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;C:\Program&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Files\Eclipse&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Adoptium\jdk-11.0.16.101-hotspot&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;PS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Users\Rujra&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;java&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-version&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;openjdk&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;version&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"11.0.16.1"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;2022-08-12&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;OpenJDK&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Runtime&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Environment&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Temurin-11.0.16.1&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;build&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;11.0.16.1&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;OpenJDK&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;64-Bit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Server&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;VM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Temurin-11.0.16.1&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;build&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;11.0.16.1&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;mixed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;mode&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;


&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;now it's working, a bit easier to config than &lt;code&gt;CMD&lt;/code&gt; for sure, cheers 🥂&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🖲️ Cmder
&lt;/h2&gt;

&lt;p&gt;Now we've come to the last terminal I'll config for this blog, The powerful &lt;a href="https://cmder.app/" rel="noopener noreferrer"&gt;Cmder&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cmder itself has many features off-the-shelf including linux commands that you can use alongside your normal windows commands whether it's &lt;code&gt;ls -lha&lt;/code&gt; &lt;code&gt;dir&lt;/code&gt; etc, but now I'll add a bit more power to it by adding ability to dynamically switch JDK version with alias.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;! important: before we proceed please make sure you have set the &lt;code&gt;PATH&lt;/code&gt; variable with &lt;code&gt;%JAVA_HOME%\bin&lt;/code&gt; at the top like we did in &lt;code&gt;CMD&lt;/code&gt; or &lt;code&gt;Powershell&lt;/code&gt; steps&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;first, after you've downloaded and extracted cmder to your machine, you'll have something like this below&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

D:&lt;span class="se"&gt;\P&lt;/span&gt;rograms&lt;span class="se"&gt;\C&lt;/span&gt;mder
λ &lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-lha&lt;/span&gt;
total 169K
drwxr-xr-x 1 Rujra 197609    0 Feb  3  2022  ./
drwxr-xr-x 1 Rujra 197609    0 Sep  4 13:47  ../
drwxr-xr-x 1 Rujra 197609    0 Jan 26  2020  bin/
&lt;span class="nt"&gt;-rwxr-xr-x&lt;/span&gt; 1 Rujra 197609 139K Jan 17  2022  Cmder.exe&lt;span class="k"&gt;*&lt;/span&gt;
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt; 1 Rujra 197609   33 Mar  9  2020  cmder_shell.bat
drwxr-xr-x 1 Rujra 197609    0 Sep 27 18:56  config/
drwxr-xr-x 1 Rujra 197609    0 Jan 26  2020  icons/
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt; 1 Rujra 197609 1.1K Jan 17  2022  LICENSE
drwxr-xr-x 1 Rujra 197609    0 Oct 31  2021  opt/
drwxr-xr-x 1 Rujra 197609    0 Feb  3  2022  vendor/
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt; 1 Rujra 197609    0 Jan 17  2022 &lt;span class="s1"&gt;'Version 1.3.19.1181'&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;inside &lt;code&gt;config&lt;/code&gt; folder there will be some config files, but we will be focus on 2 configs only

&lt;ul&gt;
&lt;li&gt;user_aliases.cmd&lt;/li&gt;
&lt;li&gt;user_profile.cmd&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

D:&lt;span class="se"&gt;\P&lt;/span&gt;rograms&lt;span class="se"&gt;\C&lt;/span&gt;mder&lt;span class="se"&gt;\c&lt;/span&gt;onfig
λ &lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-lha&lt;/span&gt;
total 508K
drwxr-xr-x 1 Rujra 197609    0 Sep 27 18:58 ./
drwxr-xr-x 1 Rujra 197609    0 Feb  3  2022 ../
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt; 1 Rujra 197609 4.2K Sep 27 18:58 clink.log
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt; 1 Rujra 197609 377K Sep 27 18:56 clink_history
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt; 1 Rujra 197609  121 Sep 27 18:58 clink_history_23924
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt; 1 Rujra 197609   97 Sep 27 18:56 clink_history_23924.removals
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt; 1 Rujra 197609    0 Sep 27 18:56 clink_history_23924~
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt; 1 Rujra 197609  507 Oct 31  2021 clink_settings
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt; 1 Rujra 197609 2.0K Mar 16  2022 cmder_prompt_config.lua
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt; 1 Rujra 197609  29K May 11  2021 mini_dump.dmp
drwxr-xr-x 1 Rujra 197609    0 Feb  3  2022 profile.d/
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt; 1 Rujra 197609  887 Jan 17  2022 Readme.md
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt; 1 Rujra 197609  672 Sep 26 19:29 user_aliases.cmd
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt; 1 Rujra 197609  967 Sep 26 18:42 user_profile.cmd
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt; 1 Rujra 197609  408 Dec 23  2018 user_profile.ps1
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt; 1 Rujra 197609  54K Jun 23 16:18 user-ConEmu.xml


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;inside &lt;code&gt;user_profile.cmd&lt;/code&gt; add the following config
```bat
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;...&lt;br&gt;
:: JAVA config&lt;br&gt;
set JAVA_8_HOME="[your JDK ROOT PATH]"&lt;br&gt;
set JAVA_11_HOME="[your JDK ROOT PATH]"&lt;br&gt;
:: Other jdk you're using&lt;br&gt;
...&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
- now after we set env on the profile, we'll set alias in `user_aliases.cmd` to switch the java version whenever we needed.

```bat


;= JAVA_HOME

java8=set JAVA_HOME=%JAVA_8_HOME%&amp;amp;refreshenv
java11=set JAVA_HOME=%JAVA_11_HOME%&amp;amp;refreshenv


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;saves and open up &lt;code&gt;Cmder&lt;/code&gt; and let's try the new alias&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;


C:&lt;span class="se"&gt;\U&lt;/span&gt;sers&lt;span class="se"&gt;\R&lt;/span&gt;ujra
λ &lt;span class="nb"&gt;echo&lt;/span&gt; %PATH%
%JAVA_HOME%&lt;span class="se"&gt;\b&lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;other PATH &lt;span class="nb"&gt;env &lt;/span&gt;blah blah blah]&lt;span class="p"&gt;;&lt;/span&gt;

C:&lt;span class="se"&gt;\U&lt;/span&gt;sers&lt;span class="se"&gt;\R&lt;/span&gt;ujra
λ &lt;span class="nb"&gt;echo&lt;/span&gt; %JAVA_HOME%
%JAVA_HOME%

C:&lt;span class="se"&gt;\U&lt;/span&gt;sers&lt;span class="se"&gt;\R&lt;/span&gt;ujra
λ java &lt;span class="nt"&gt;-version&lt;/span&gt;
openjdk version &lt;span class="s2"&gt;"17.0.4.1"&lt;/span&gt; 2022-08-12
OpenJDK Runtime Environment Temurin-17.0.4.1+1 &lt;span class="o"&gt;(&lt;/span&gt;build 17.0.4.1+1&lt;span class="o"&gt;)&lt;/span&gt;
OpenJDK 64-Bit Server VM Temurin-17.0.4.1+1 &lt;span class="o"&gt;(&lt;/span&gt;build 17.0.4.1+1, mixed mode, sharing&lt;span class="o"&gt;)&lt;/span&gt;

C:&lt;span class="se"&gt;\U&lt;/span&gt;sers&lt;span class="se"&gt;\R&lt;/span&gt;ujra
λ java11
Refreshing environment variables from registry &lt;span class="k"&gt;for &lt;/span&gt;cmd.exe. Please wait...Finished..

C:&lt;span class="se"&gt;\U&lt;/span&gt;sers&lt;span class="se"&gt;\R&lt;/span&gt;ujra
λ &lt;span class="nb"&gt;echo&lt;/span&gt; %PATH%
&lt;span class="s2"&gt;"C:&lt;/span&gt;&lt;span class="se"&gt;\P&lt;/span&gt;&lt;span class="s2"&gt;rogram Files&lt;/span&gt;&lt;span class="se"&gt;\E&lt;/span&gt;&lt;span class="s2"&gt;clipse Adoptium&lt;/span&gt;&lt;span class="se"&gt;\j&lt;/span&gt;&lt;span class="s2"&gt;dk-11.0.16.101-hotspot"&lt;/span&gt;&lt;span class="se"&gt;\b&lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;other PATH &lt;span class="nb"&gt;env &lt;/span&gt;blah blah blah]&lt;span class="p"&gt;;&lt;/span&gt;

C:&lt;span class="se"&gt;\U&lt;/span&gt;sers&lt;span class="se"&gt;\R&lt;/span&gt;ujra
λ &lt;span class="nb"&gt;echo&lt;/span&gt; %JAVA_HOME%
&lt;span class="s2"&gt;"C:&lt;/span&gt;&lt;span class="se"&gt;\P&lt;/span&gt;&lt;span class="s2"&gt;rogram Files&lt;/span&gt;&lt;span class="se"&gt;\E&lt;/span&gt;&lt;span class="s2"&gt;clipse Adoptium&lt;/span&gt;&lt;span class="se"&gt;\j&lt;/span&gt;&lt;span class="s2"&gt;dk-11.0.16.101-hotspot"&lt;/span&gt;

C:&lt;span class="se"&gt;\U&lt;/span&gt;sers&lt;span class="se"&gt;\R&lt;/span&gt;ujra
λ java &lt;span class="nt"&gt;-version&lt;/span&gt;
openjdk version &lt;span class="s2"&gt;"11.0.16.1"&lt;/span&gt; 2022-08-12
OpenJDK Runtime Environment Temurin-11.0.16.1+1 &lt;span class="o"&gt;(&lt;/span&gt;build 11.0.16.1+1&lt;span class="o"&gt;)&lt;/span&gt;
OpenJDK 64-Bit Server VM Temurin-11.0.16.1+1 &lt;span class="o"&gt;(&lt;/span&gt;build 11.0.16.1+1, mixed mode&lt;span class="o"&gt;)&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;work like a charm 😁👾&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;and that's it, thank you for reading, this is my first (finished)blog, any feedbacks &amp;amp; suggestions are gladly welcome! 🙌&lt;/p&gt;




</description>
      <category>java</category>
      <category>productivity</category>
      <category>terminal</category>
      <category>windows</category>
    </item>
  </channel>
</rss>
