Browse documentation
Documentation / Getting started

Getting started

Status. RJNI has not yet shipped a packaged, publicly installable build. This page describes the tool's verified pipeline and its intended external interface. There is no binary you can currently download. To discuss early access, contact [email protected].

Once packaged, RJNI is designed to run as one extra step after your normal build, against an already-built JAR. It does not otherwise change your build process:

rjni protect --in build/libs/app.jar --out build/libs/app-protected.jar

The output is a drop-in replacement JAR: same entry point, same public behaviour. It runs on an ordinary JVM. Nothing about how you deploy or launch it changes.

What a run produces

Three artefacts alongside the protected JAR itself, written on every run:

  • <output>.rename-map.txt, every renamed class, old name to new, for your own reference. Not read by RJNI itself.
  • <output>.protection-report.txt, a grouped, human-readable summary of every pass applied: methods nativized, methods excluded and why, classes renamed, classes excluded and why.
  • The protected JAR, original bytes for anything untouched, rewritten bytes and a bundled native library for everything else.

Where to go next

Read How it works for the six-stage pipeline, then Protection passes for what each stage does to your code. If you're evaluating RJNI against a specific project, start with Compatibility and Trial mode.