jir
jir

Switch Java.
Not your environment.

  • Windows x64
  • Open Source
  • Rust
PowerShell
PS> jir ls

  8:zulu          17:corretto     21:temurin *
  * active

PS> jir use 21:temurin

  ✔ Active  21:temurin
  JAVA_HOME  C:\jir\home\occupy

PS> java -version
openjdk version "21.0.8" 2025-07-15
OpenJDK Runtime Environment Temurin-21.0.8+9 (build 21.0.8+9)
OpenJDK 64-Bit Server VM Temurin-21.0.8+9 (build 21.0.8+9, mixed mode)

The problem

Multiple JDKs.
More complexity.

Different projects need different Java versions. Installing and switching between JDKs on Windows is a real hassle — and every switch means editing environment variables again.

Java 8

Zulu

C:\java\8

Java 17

Corretto

C:\java\17

Java 21

Temurin

C:\java\21 Active

How it works

One stable path.

jir keeps the active JDK behind a single home/occupy directory. Point JAVA_HOME there once — switching versions never touches your environment again.

Learn more →
JDK 8 (Zulu)
JDK 17 (Corretto)
JDK 21 (Temurin)
jir
home / occupy C:\jir\home\occupy
Java runtime ✔ Stable path for all projects

Features

Simple commands.

Everything you need to manage Java runtimes, with a small and easy-to-remember command set.

Install

Add JDKs from 20+ distributions — Temurin, Corretto, Zulu, Oracle and more.

Switch

Change versions in seconds — no environment edits.

Current

Check which Java runtime is active right now.

List

View installed and installable JDKs in a flat, readable grid.

Uninstall

Remove versions you no longer use — jir cleans up the junction too.

Update

Keep jir itself up to date with a single command.

Command playground

Try it yourself.

Select a command to preview its output — from installing a JDK to updating jir itself.

PowerShell
PS> jir ls

  8:zulu          17:corretto     21:temurin *
  * active
PS> jir ls -i

  6:zulu             7:zulu             8:aoj
  8:aoj_openj9       8:corretto         8:dragonwell
  8:kona             8:liberica         8:ojdk_build
  8:openlogic        8:oracle_open_jdk  8:redhat
  8:semeru           8:temurin          8:zulu +
  …
  * active    + installed
PS> jir i 21:temurin

  ◆ Installing  21:temurin
  vendor     Temurin
  build      21.0.8+9
  file       OpenJDK21U-jdk_x64_windows_hotspot_21.0.8_9.zip

  ✔ Installed  21:temurin
  path       C:\jir\home\21\temurin
  JAVA_HOME  C:\jir\home\21\temurin
  hint       run `jir use 21:temurin` to activate
PS> jir use 21:temurin

  ✔ Active  21:temurin
  JAVA_HOME  C:\jir\home\occupy
PS> jir current

  ◆ Current  21:temurin
  vendor     Temurin
  build      21.0.8+9
  source     C:\jir\home\21\temurin
  JAVA_HOME  C:\jir\home\occupy
  binary     C:\jir\home\occupy\bin\java.exe
PS> jir rm 8:zulu
  Remove 8:zulu (C:\jir\home\8\zulu)
  Confirm? [y/N] y
Uninstalled 8:zulu
PS> jir update

  current    jir 0.2.4
  ✔ up to date  0.2.4

Get started

Installation

Choose your preferred way to install jir — pick one channel, do not mix them. Each keeps its own directory and its own JDK library under home/.

Recommended

GUI installer

A graphical installer for Windows. It records the installation, so jir shows up in "Apps & features" and uninstalls normally, and it reuses an existing install directory.

Download installer
  • Choose the install directory
  • Can add jir to PATH and set JAVA_HOME
  • Ships uninstall.exe

Portable

PowerShell one-liner

No administrator rights: the script verifies the archive's SHA-256, extracts it, adds it to PATH and sets JIR_HOME.

iex (New-Object Net.WebClient).DownloadString('https://github.com/rururunu/Jir/releases/latest/download/install.ps1')
  • No uninstaller — remove its directory and the PATH / JIR_HOME entries yourself
  • Use this form rather than irm ... | iex: release assets are served as application/octet-stream, and a byte array piped into iex fails to parse
  • Already installed? jir update upgrades whichever copy you run

Command reference

Every command, at a glance.

A target is either a feature version (21) or a full version:distro pair (21:temurin). Give a version only, and jir asks which vendor you mean. Click any row to copy the command.

CommandWhat it does
jir, jir -h, jir --help, jir helpShow the help screen.
jir lsShow installed JDKs.
jir ls -iShow installable JDKs.
jir ls -i 21Show installable JDKs for one feature version.
jir i 21Install Java 21 and choose a vendor.
jir i 21:temurinInstall a specific distro.
jir i 21:temurin 17:correttoInstall several at once.
jir usePick from every installed JDK and activate it.
jir use 21Choose an installed Java 21 distro and activate it.
jir use 21:temurinActivate a specific installed distro.
jir currentShow the active Java runtime.
jir -vPrint the installed version.
jir uni 21Choose an installed Java 21 distro and remove it.
jir uni 21:temurinUninstall a JDK after confirmation (-y to skip).
jir updateUpdate jir itself to the newest release (--force to reinstall).