JMOD Extractor and Java Decompiler
Inspect a JDK module's descriptor, classes and packaged resources.
Extract Java modules online
Upload a .jmod to browse its module descriptor, class packages, resources, native libraries, configuration, headers and legal files. Processing runs on our servers. No module is loaded or executed, no dependencies are downloaded and no jlink operation is performed.
Download the small Java 21 module example and upload it above. The generated fixture includes a descriptor, class, resource, configuration and inert native-library sample under this project's license.
module-demo.jmod/ JMOD-SUMMARY.txt jmod.json files/classes/module-info.class files/classes/demo/Hello.class files/classes/demo/message.txt files/conf/demo.properties files/lib/example.bin recovered/classes/demo/Hello.java
The summary exposes available module name, version, requirements, exports, opens, services and packages. Original paths are retained. Supported classes use the existing CFR Java decompiler; jmod.json and extraction.json record per-entry recovery status and output provenance. Browse partial results, download individual originals or download the complete result ZIP.
Supported JMOD variants and limitations
Supports the validated JMOD 1.0 header and its ZIP/ZIP64 payload, with classes/, conf/, include/, legal/, man/, lib/ and bin/ sections. Ordinary ZIPs renamed to JMOD are rejected. Extraction and descriptor inspection do not require a worker-installed jmod command.
Class recovery supports Java bytecode through Java 21 (major 65). Unsupported versions and failed recoveries retain original classes with notes. Native libraries and commands remain downloadable data; they do not yield Java. Decompiled code cannot restore original comments or build configuration.
Shared defaults are five minutes per job, 1 GiB expanded data, 256 MiB per member, 25,000 entries, four nested layers and 1,000 class recoveries, with 30 seconds per class. Descriptors are limited to 1 MiB and ZIP directories to 16 MiB. Large modules can yield partial source within these limits. Worker limits may stop work sooner. Encrypted and split ZIP payloads are unsupported.
DECOMPILATION-NOTES.txt explains corrupt entries, missing descriptors, unsupported bytecode and limits. Native code, signatures and module safety are not verified. For JAR, WAR, EAR or standalone CLASS files, use the Java decompiler.