A JavaScript implementation of Java ME (J2ME) enabling J2ME applications to run in web browsers, originally for Firefox OS.
JS2ME is a JavaScript-based implementation of Java Micro Edition (J2ME) that allows J2ME applications and games to run in web browsers. It interprets Java bytecode and provides MIDP compatibility, originally developed for Firefox OS to enable legacy Java mobile apps on modern web platforms. The project focuses on performance through JIT optimizations, making it faster than other JavaScript virtual machines.
Developers and enthusiasts looking to run or preserve J2ME applications on web-based platforms, particularly those targeting Firefox OS or browser environments. It's also useful for retro gaming communities wanting to play old Java mobile games.
JS2ME offers a high-performance, browser-compatible J2ME runtime with aggressive JIT optimizations, outperforming other JavaScript JVMs. It provides a practical solution for running legacy Java mobile apps without native J2ME hardware, especially in constrained environments like low-end Firefox OS devices.
J2ME implementation in JavaScript
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses just-in-time compilation to achieve high performance, making it faster than other JavaScript-based JVMs, as stated in the README for smooth operation on low-end devices.
Originally built as a privileged Firefox OS app with two optimized editions (normal for features, X for speed), showing focused development for specific use cases.
Successfully runs J2ME games like Tomb Raider and Picross, as evidenced by completed milestones, making it practical for retro gaming preservation.
Supports most Java bytecode to interpret compiled J2ME JAR files directly in web browsers, enabling legacy app execution without native Java.
The README admits that features like forms are not perfected ('naaahh, too lazy') and some applications (e.g., JaduGadu) don't work, indicating significant gaps.
Maintains two separate app versions with trade-offs between features and speed, complicating development and user choice, as noted in the milestones.
Only implements part of MIDP and lacks support for many J2ME classes, restricting its use for broader Java ME ecosystems beyond specific games.
Heavily tied to Firefox OS with the app available on its marketplace, limiting portability to other environments without significant modifications.