Install javm
javm provides install scripts for Linux, macOS, and Windows, plus simple shell setup steps.
Quick install
- Linux & macOS
- Windows
Install the latest version for your system by running the following command:
curl -fsSL https://javm.dev/install.sh | bash
Install a specific version or channel:
# latest nightly build
curl -fsSL https://javm.dev/install.sh | bash -s nightly
# specific release
curl -fsSL https://javm.dev/install.sh | bash -s v0.1.0
Install the latest version for your system by running the following command:
irm https://javm.dev/install.ps1 | iex
Install a specific version or channel:
# nightly
iex "& {'{'} $(irm https://javm.dev/install.ps1) {'}'} nightly"
# specific release
iex "& {'{'} $(irm https://javm.dev/install.ps1) {'}'} v0.1.0"
The scripts auto-detect your platform/architecture and support three modes: latest (default), nightly, or an explicit tag like v0.1.0.
Shell setup
Enable javm in your shell by evaluating the output of javm init <shell> and adding it to your profile.
- Bash
- Zsh
- Fish
- Nushell
- PowerShell
Add to ~/.bashrc (or ~/.zshrc if you use Zsh with Bash config):
eval "$(javm init bash)"
Add to ~/.zshrc:
eval "$(javm init zsh)"
Add to ~/.config/fish/config.fish:
javm init fish | source
Generate the script file using javm init nu:
javm init nu | save -f ~/.local/share/javm/javm.nu
Add this to your config.nu (you can find it by running $nu.config-path):
source ~/.local/share/javm/javm.nu
Add to your profile:
iex "$(javm init pwsh)"
To find your PowerShell profile path run:
echo $PROFILE
After editing your profile, restart the shell (or reload your profile) to apply changes.
Advanced: Static Shell Integration (Audit & Performance)
Unlike tools that require opaque shims, javm generates a clear, readable shell function. You can eval it for convenience, or verify and paste it directly into your profile for maximum security and startup speed.
If you prefer to avoid dynamic evaluation on every shell startup, you can append the static integration code directly to your profile:
- Bash
- Zsh
- Fish
- PowerShell
javm init bash >> ~/.bashrc
javm init zsh >> ~/.zshrc
javm init fish >> ~/.config/fish/config.fish
javm init pwsh >> $PROFILE
This way, the integration code remains static and audit-ready in your configuration file.
If you update javm in the future, you might need to update this static code if the shell integration logic changes.