Java, Lua, and PE files
glaurung java-recovery-report
Recover a JAR into a project tree and score the result.
use it for
The workflow can run CFR or Vineflower, copy resources, compile candidates, and repair missing dependencies. Network dependency resolution is off unless you enable it.
Run glaurung java-recovery-report --help on your installed version before putting the command in a script.
Glaurung is still pre-1.0.
- input
- A JAR or ZIP archive and an output directory for the recovered project.
- output
- Recovered source candidates, compile status, repair attempts, validation results, blockers, and Markdown/JSON reports.
- mode
- writes state. Writes the recovered project and report under --output-root.
command shape
syntax
$ glaurung java-recovery-report ARCHIVE [--output-root DIR]
The installed parser is authoritative: glaurung java-recovery-report --help
run it
examples
Run an offline first pass
This fixture run intentionally disables repair and validation. It exposes missing local helpers instead of hiding them.
run
$ glaurung java-recovery-report samples/binaries/platforms/windows/amd64/export/java/jdk17/HelloWorld.jar --output-root /tmp/hello-java --no-repair --no-validate --no-compile-candidates output
# Java Recovery Report
Status: blocked
Headline: not_clean_enough: recovered source does not compile.
## Progress
- Sources: 0 generated, 0 parsed, 0 parse errors
- Compile: fail (0 diagnostics)
- Repair: skip (0 applied)
- Validation: skip
## Source/Bytecode Links
- HelloWorld -> n/a; notes=helper_unavailable captured 2026-08-31, shortened.
Read the result: The blocked result is useful: the local recovery helper was unavailable. Install or point to the required decompiler before trusting a later clean report.
Allow a full local recovery
Keep network resolution off unless the archive truly needs dependencies you cannot supply locally.
run
$ glaurung java-recovery-report samples/binaries/platforms/windows/amd64/export/java/jdk17/HelloWorld.jar --output-root /tmp/hello-java --validate-profile full_static output
# Java Recovery Report
Status: blocked
Headline: Recovery is blocked by compile.
## Progress
- Sources: 0 generated, 0 parsed, 0 parse errors
- Compile: fail (0 diagnostics)
- Repair: fail (0 applied)
- Validation: fail
- Compatibility: 0.68
## Validation Summary
- Profile: full_static
- Checks: compile=fail, abi=fail, resources=pass, metadata=pass, semantics=pass
## Top Blockers
1. Validation failed: compile
2. Validation failed: abi captured from the checked-in JAR, 2026-08-31; shortened.
Read the result: A full profile does not manufacture missing recovered source. Here it gives a sharper blocked result: compile and ABI fail while resources, metadata, and semantics pass.
used above
important options
These are the flags used by the examples. Run glaurung java-recovery-report --help for the complete parser help.
before you rely on it
checks
keep working