Introduction

jpx runs an already-published module or Maven artifact with one command. Point it at a target and it resolves the dependency closure, installs it once under your home directory, and launches the main entry point. It is npx for Java: a way to run a released tool without cloning, building, or wiring up its paths by hand.

jpx org.junit.platform.console --version

That resolves the JUnit console launcher and its dependencies, installs them, and runs the tool. The --version is passed straight through to the launched program.

Getting jpx

A package manager installs jpx as a command of its own, with no project and no build tool around it. A JDK, version 25 or newer, is the only prerequisite:

sdk install jpx                  # SDKMAN
brew install jenesis/tap/jpx     # Homebrew
scoop bucket add jenesis https://github.com/jenesis/scoop-bucket && scoop install jpx   # Scoop

jpx org.junit.platform.console --version

jpx also ships inside the Jenesis build tool. Every project that carries the tool's sources under build/jenesis/ - whether they arrived through jenesis-init, the curl bootstrap, or the git submodule described in the tool's Getting started - has jpx as a single-file program in that folder, launched by the JDK directly:

java build/jenesis/Jpx.java org.junit.platform.console --version

Both run the same program and take the same arguments. The examples in this section write jpx.

The same three steps - resolve, install, launch - are also a public API, so a program of your own can run a published module too.

What's in this section

  1. Introduction - you are here.
  2. Choosing a target - the target grammar: a module name or Maven coordinate, a version, an entry point.
  3. Installation & caching - where installs live, what the descriptor records, and what makes an install safe to reuse.
  4. Isolation & verification - running the launched program in a container and pinning it to a trusted digest.
  5. Using jpx from Java - the same resolve, install, and launch sequence as an API.
  6. Reference - every flag, the exit codes, and the API surface in one table.
Prefer to read it running? The jpx demo is a single file that installs the JUnit console launcher, names it once as a module and once as a coordinate, and verifies both against a digest before launching them.