Skip to main content

A command-line tool for installing and managing OpenJDK distributions.

Project description

jdkman

A command-line tool for installing and managing OpenJDK distributions.


TODO: version 0.3.0

  • Add support for macOS
  • Add support for Windows
  • Add support for Linux
  • Add auto environment like jEnv
  • Update tests
  • version text graphic
  • jdkman-0.2.12.arm64_sequoia.bottle.tar.gz vs jdkman--0.2.12.arm64_sequoia.bottle.tar.gz
  • rich - to standard colors
  • 중복제거 - out(f"{MARK_INVALID} {st_emp(slug)} is not installed!", highlight=False)
  • eval "$(jdk-hook --slug "$slug" 2>/dev/null)" 별도 스크립트로 (성능)
  • convention - command 도움말, param 도움말, 변수명, 함수명
  • java 실행시 /usr/bin/java 실항하게 하기 (shims)
  • jdk help 에서 version, help 다른 섹션으로 내리기
  • homebrew.md 생성
  • env_hook.py -> c or rust
claude --resume 2e868346-0793-4682-abc8-cffbff1aa93d

Why jdkman?

How often do you actually need to pick between 21.0.3 and 21.0.5? Probably never. "The latest Zulu 21" is almost always good enough.

jdkman manages JDKs at exactly that level — no more, no less.

  • jdk install zulu-21 — just pick a vendor and a major version
  • jdk upgrade zulu-21 — updates to the latest patch automatically
  • One installation per vendor + major version, always

No scrolling through minor version lists. No patch versions piling up.

On macOS, JDKs are installed under ~/Library/Java/JavaVirtualMachines/ — the standard path where Gradle, IntelliJ, and most other tools automatically look for JDKs. No extra configuration needed.


Installation

Homebrew (recommended):

brew install xunyss/tap/jdkman

pip:

pip install jdkman

Quick Start

# Browse available JDK distributions
jdk remote

# Install a distribution
jdk install zulu-21

# List installed distributions
jdk list

# Check for outdated installations
jdk outdated

Commands

jdk remote [DISTRO]

Browse JDK distributions available for download.

By default, shows only stable JDK builds. Use flags to include additional build types.

jdk remote                    # List all stable JDK builds
jdk remote zulu               # Filter by vendor prefix
jdk remote --version 21       # Filter by major version
jdk remote --all              # Include JRE and feature builds
jdk remote --with-jre         # Include JRE builds
jdk remote --with-feat        # Include feature builds (e.g. JavaFX, CRaC)
jdk remote --all zulu         # Combined: all build types, zulu only

Options:

Option Short Description
--version -v Filter by major version number
--all -a Include all build types
--with-jre -R Include JRE builds
--with-feat -F Include feature builds

jdk install <DISTRO>

Download and install a JDK distribution.

jdk install zulu-21
jdk install temurin-17
jdk install zulu-jre-21          # JRE variant
jdk install zulu-javafx-21       # With JavaFX
jdk install zulu-crac-21         # With CRaC
jdk install zulu-javafx-jre-21   # JRE + JavaFX

The DISTRO name follows this pattern:

{vendor}[-{feature}][-jre]-{major_version}

Use jdk remote to find the exact distribution name.


jdk list

Show all installed JDK distributions managed by jdkman.

jdk list
jdk ls      # alias

jdk uninstall <DISTRO>

Remove an installed JDK distribution.

jdk uninstall zulu-21
jdk remove zulu-21    # alias
jdk rm zulu-21        # alias

jdk upgrade <DISTRO>

Upgrade an installed distribution to the latest patch version.

jdk upgrade zulu-21
jdk update zulu-21    # alias

jdk outdated

List installed distributions that have newer versions available.

jdk outdated

jdk vendors

List all available JDK vendors.

jdk vendors
jdk vendor    # alias

jdk cleanup

Remove cached data (downloaded archives and catalog cache).

jdk cleanup
jdk clean     # alias
jdk clear     # alias

jdk home (macOS only)

Show Java home paths for JVMs registered with the system.

jdk home           # List registered Java installations
jdk home --json    # Show detailed info in JSON format

jdk version

Show the jdkman version.

jdk version
jdk --version
jdk -v

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jdkman-0.3.0.tar.gz (22.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jdkman-0.3.0-py3-none-any.whl (34.7 kB view details)

Uploaded Python 3

File details

Details for the file jdkman-0.3.0.tar.gz.

File metadata

  • Download URL: jdkman-0.3.0.tar.gz
  • Upload date:
  • Size: 22.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for jdkman-0.3.0.tar.gz
Algorithm Hash digest
SHA256 500835dea0afe469847ab236e17f324dcac1be84f7de7c01307193905985529c
MD5 33c8c1e66ec55502deedafad378d6804
BLAKE2b-256 e9199427a2771a3f4fb111fddd4e311b96ff7fdf1c8f2913a9e6c5c5b663244b

See more details on using hashes here.

File details

Details for the file jdkman-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: jdkman-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 34.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for jdkman-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 405aec1065630c251d25b26fd94e609c38c4ab01dde9b3ed38bc9b2b5f58d3be
MD5 5c17ee214c035458337bec2d1267ab43
BLAKE2b-256 fcf3d25d34338c86e49dbb8a3ae0875278b48f45cc5ce425b1ce4ad98c217003

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page