Skip to main content

exe2jar

Recover .jar files and launcher metadata from Java application .exe files.

exe2jar unpacks Jar2Exe and install4j/exe4j Windows launchers into usable .jar files and restore metadata.

Features

.exe Type Restore Rebuild
Jar2Exe ✅ ✅
install4j/exe4j ✅ ❓
launch4j ❓ ❓
  • Restore: unpack the .exe into .jar files and launcher information.
  • Rebuild: create a new .exe from an existing .exe and a replacement .jar.

Usage

Install from PyPI:

pip install exe2jar

Inspect an .exe:

$ exe2jar inspect game.exe
path: game.exe
format: Jar2Exe
size: 7,896,046
config: offset=0x76ea00 size=117
tail_loader: offset=0x76ea89 size=102,757 digest=fc92cddf7ff10154eb3bf5f5aa8a538b
rc_data: offset=0x7d828 size=7,277,729 mode=l3
serial: 000102757t2845x
mainclass: com.riot.main.Main
jre_order: bcsie
jre: ./bin/
libs: bin/lib/libs
app_jar: size=3,412,924 entries=1,901

Restore .jar files:

$ exe2jar restore game.exe
[restore] mode=l3 entries=1901
[restore] L3 AES entry decrypt: 1900
[restore] classes: 1841
[restore] protected classes (J2EMAP): 57
[restore] resources: 2
[restore] restored jar: game_restored/app.jar
[restore] map:          game_restored/restore-map.json

$ ls game_restored
app.jar
jar2exe-config.json
restore-map.json

Restore outputs:

  • app.jar: the recovered application jar.
  • jar2exe-config.json: the parsed Jar2Exe launcher configuration.
  • restore-map.json: class and resource name recovery metadata.

Rebuild a Jar2Exe .exe with a replacement .jar:

$ exe2jar rebuild game.exe game_restored/app.jar -o game_mod.exe
[build] repacked app.jar entries to Jar2Exe hash names: 1,901
[build] prepared app.jar: 3,411,574 bytes
[build] encrypted jar: 3,411,574 bytes (mode=l3)
[build] digest: 2cf193e28fc3f9dd70760d60d3ba941d
[build] output: game_mod.exe (4,029,934 bytes)

$ ls game_mod.exe
game_mod.exe

Development

uv sync --group dev
uv run python -m unittest discover -s tests
uv build --no-sources

Disclaimer

exe2jar is intended for research and authorized analysis only. Do not use it to violate software licenses, bypass access controls, or redistribute proprietary application files without permission. You are responsible for complying with applicable laws and license terms.

License

MIT

Metadata

Release files for exe2jar 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for exe2jar 0.1.0
File Size Uploaded Provenance
exe2jar-0.1.0.tar.gz 25.8 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for exe2jar 0.1.0
File Interpreter ABI Platform
exe2jar-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 55.4 kB

Release files / exe2jar-0.1.0.tar.gz

Download URL exe2jar-0.1.0.tar.gz
Size 25.8 kB
Tags Source
SHA-256 checksum
How to use checksums
8edab95db610f1b0ac61455f42c5a74b6d71f67a9b2d894c36c82a1ad7ad5997
BLAKE2b-256 checksum
How to use checksums
12629f0d6d2416e1ff916f9b8d51cefce236301462ef5e50a2fbde15cee50231
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 9, 2026.

Transparency log

Release files / exe2jar-0.1.0-py3-none-any.whl

Download URL exe2jar-0.1.0-py3-none-any.whl
Size 29.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3c2ad0a9594cbd00f5a0fd19505ac51fa0e72ced8930d8a283fe6a16755d2a40
BLAKE2b-256 checksum
How to use checksums
680303e54830d180e7eabaaa58ddeb46be69fd6ad9f18a100dc7a95ed4b813e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 9, 2026.

Transparency log

Security for exe2jar 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for exe2jar-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 9, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page