A blast from the past: Convert J2ME/MIDP mobile applications to Windows executables
Back in 2004, before smartphones dominated the world, Java 2 Micro Edition (J2ME) was the standard for mobile applications. Nokia, Sony Ericsson, and Motorola phones ran games and apps packaged as JAR files. But there was always one question: "Can we run these on PC?"
That's why Midp2Exe and MidpX were created.
Midp2Exe converts J2ME/MIDP applications (JAR/JAD files) into standalone Windows executables. Simply put, it brings mobile games from your Nokia phone to your desktop.
MidpX takes it furtherโit's a complete J2ME software management platform integrated into Internet Explorer and Windows Explorer, featuring OTA (Over The Air) provisioning support.
This project is now open-sourced as a piece of software archaeology, preserving a fascinating era of mobile development history.
Here are some classic J2ME games running on Windows via Midp2Exe:
| File | Description | Size |
|---|---|---|
| Midp2Exe120.zip | Main converter tool - Converts JAR files to EXE | 63 KB |
| MidpRuntimeDLL130.zip | Required Runtime DLLs - Necessary for running converted apps | 788 KB |
| MidpX.zip | MidpX Browser Integration - IE toolbar (legacy, not recommended) | 1755 KB |
๐ฅ All files are available in the Releases section
You'll need:
- โ
Midp2Exe120.zip- The converter - โ
MidpRuntimeDLL130.zip- Runtime libraries
Extract MidpRuntimeDLL130.zip and choose one of these options:
Option A: Local Installation (Recommended)
- Place the DLL files in the same directory as your converted EXE files
Option B: System-wide Installation
- Copy DLL files to
C:\Windows\SysWOW64\(for x64, requires administrator privileges) - Copy DLL files to
C:\Windows\System32\(for x86, requires administrator privileges)
Extract Midp2Exe120.zip and use the command line:
# Basic conversion
Midp2Exe -jar yourgame.jar -out yourgame.exe
# With JAD file (recommended)
Midp2Exe -jar yourgame.jar -jad yourgame.jad -out yourgame.exeSimply double-click the generated .exe file!
Midp2Exe [options]
Options:
-jar <file> Input JAR file (required)
-jad <file> Input JAD file (optional but recommended)
-out/-o <file> Output EXE filename
-run/-r Run the application after conversion
-machine/-m Target machine format (currently only X86)
-help/-h Show help message
Examples:
Midp2Exe -jar demo.jar -out demo.exe
Midp2Exe -jar game.jar -jad game.jad -o game.exe -run
- JAR (Java Archive): Contains the actual application code and resources
- JAD (Java Application Descriptor): Contains metadata about the application (name, version, permissions, etc.)
๐ก Tip: If you only have a JAR file, the converter will attempt to extract information from the JAR's manifest. However, having both JAR and JAD files ensures the best compatibility.
- OS: Windows XP / Vista / 7 / 8 / 10 / 11
- Architecture: x86 (32-bit)
- 64-bit Windows users: The converted apps run in 32-bit compatibility mode
- Dependencies: Runtime DLLs (included in MidpRuntimeDLL120.zip)
MidpX is a Browser Helper Object (BHO) that integrates with Internet Explorer for OTA provisioning. Unless you're specifically using IE for nostalgic purposes, we don't recommend installing MidpX on modern systems.
- Added a toolbar to Internet Explorer and Windows Explorer
- Enabled one-click download and execution of J2ME apps from websites
- Implemented OTA provisioning (the standard mobile app installation method in 2004)
- Integrated with Sun Microsystems Wireless Toolkits (WTK)
- Internet Explorer is deprecated
- Modern browsers don't support BHO plugins
- Security concerns with executing downloaded code automatically
โ MIDP Support
- MIDP 1.0 full support
- MIDP 2.0 full support
- Nokia UI API emulation
โ Multimedia
- MIDI music playback (JSR135)
- TONE sound synthesis
- Adjustable volume control
- JPEG and GIF image support
โ Graphics
- Full Canvas rendering
- Sprite animation
- Double buffering support
- Semi-transparent PNG images not fully supported
- Smart Message templates not implemented
- Some Nokia-specific APIs may not work perfectly
- Maximum 16 simultaneous MIDI channels
These limitations reflect the state of development in 2004 and the challenges of emulating proprietary mobile APIs.
Midp2Exe works by:
- Porting Sun's KVM (K Virtual Machine) to Windows
- Implementing NHAL (Native Hardware Abstraction Layer) to bridge Java APIs with Windows APIs
- Emulating MIDP APIs including display, input, storage (RMS), and networking
- Multimedia integration through Windows GDI, DirectSound, and MIDI APIs
For developers interested in the technical details, this project demonstrates:
- JVM porting techniques
- API emulation and abstraction layers
- Cross-platform multimedia handling
- Resource-constrained environment optimization
This is primarily an archival project, but contributions are welcome for:
- Documentation improvements
- Bug reports for specific games/applications
- Testing on different Windows versions
- Historical context and stories from the J2ME era
This software is released as Freeware for educational and preservation purposes.
- โ Free to use and distribute
- โ No warranty provided
- โ Use at your own risk
Technology Landscape:
- iPhone just launched (June 2007)
- Android wasn't released yet (2008)
- Nokia dominated the mobile market
- J2ME was the primary mobile development platform
- Feature phones were the norm, not smartphones
Why This Matters:
- Documents an important era in mobile development
- Preserves techniques for VM porting and API emulation
- Enables running classic mobile games that would otherwise be lost
- Educational value for understanding platform evolution
Have questions? Found a bug? Want to share your J2ME memories?
- Open an Issue
- Share your experiences in Discussions
- Found a game that works perfectly? Let us know!
For questions about the original development or historical context, feel free to reach out through GitHub issues.
Made with โค๏ธ in 2004 | Preserved in 2024
"When mobile games came in JAR files..."