252 lines
12 KiB
HTML
252 lines
12 KiB
HTML
<h1 id="awesome-j2me-awesome">Awesome J2ME <a
|
||
href="https://awesome.re"><img src="https://awesome.re/badge.svg"
|
||
alt="Awesome" /></a></h1>
|
||
<p><a
|
||
href="https://www.oracle.com/java/technologies/javameoverview.html"><img src="j2me-logo.jpg" align="right" width="100"></a></p>
|
||
<blockquote>
|
||
<p>An awesome list about Java platform Micro edition<a
|
||
href="https://en.wikipedia.org/wiki/Java_Platform,_Micro_Edition">(J2ME)</a>.
|
||
Documentation, academic papers, tutorials, communities, IDEs, SDKs,
|
||
emulators, apps, video games. J2ME is a Java specification designed for
|
||
old keypad phones and PDAs. MIDP is used to create Midlets, which have
|
||
<code>.jad</code> or <code>.jar</code> extension, and run on platforms
|
||
like old keypad phones, Symbian and PDAs. MIDP is supported till Java ME
|
||
SDK 3.4.</p>
|
||
</blockquote>
|
||
<!--lint disable double-link-->
|
||
<p>Please give it a star(⭐) to raise awareness about J2ME community,
|
||
and support the development of this project. Read about history of
|
||
Awesome J2ME in
|
||
<a href="https://hstsethi.vercel.app/posts/programming/awesome-j2me">this
|
||
blog post</a>. Also check out <a
|
||
href="https://github.com/hstsethi/awesome-symbian">Awesome
|
||
Symbian</a>.</p>
|
||
<h2 id="contents">Contents</h2>
|
||
<ul>
|
||
<li><a href="#communities">Communities</a></li>
|
||
<li><a href="#development">Development</a>
|
||
<ul>
|
||
<li><a href="#ides">IDEs</a></li>
|
||
<li><a href="#sdks">SDKs</a></li>
|
||
</ul></li>
|
||
<li><a href="#emulators">Emulators</a></li>
|
||
<li><a href="#hardware">Hardware</a></li>
|
||
<li><a href="#native-software">Native Software</a>
|
||
<ul>
|
||
<li><a href="#apps">Apps</a></li>
|
||
<li><a href="#video-games">Video Games</a></li>
|
||
</ul></li>
|
||
<li><a href="#related-projects">Related Projects</a></li>
|
||
<li><a href="#reverse-engineering">Reverse Engineering</a>
|
||
<ul>
|
||
<li><a href="#decompilers">Decompilers</a></li>
|
||
</ul></li>
|
||
<li><a href="#tutorials">Tutorials</a>
|
||
<ul>
|
||
<li><a href="#academic-articles">Academic Articles</a></li>
|
||
</ul></li>
|
||
</ul>
|
||
<h2 id="communities">Communities</h2>
|
||
<ul>
|
||
<li><a href="https://retrospect.hackclub.com/j2me">HackClub Retrospect
|
||
J2ME</a> - J2ME development contest by Hackclub. Features Awesome J2ME
|
||
in its resources section.</li>
|
||
<li><a href="https://discord.gg/8TgbHAG">Kahvibreak Discord</a> -
|
||
Discord community focused on preserving J2ME games.</li>
|
||
<li><a href="https://keitaiwiki.com/wiki/KeitaiWiki">Ketai Wiki</a> -
|
||
Wiki dedicated to cataloging games from Japanese Feature Phones
|
||
(keitai), pre-Android/iPhone mobile devices released in Japan.</li>
|
||
<li><a href="https://reddit.com/r/j2megaming">r/J2MEGaming</a> - Reddit
|
||
community for J2ME, Symbian, and related platforms.</li>
|
||
</ul>
|
||
<h2 id="development">Development</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/SimonKagstrom/cibyl">Cibyl</a> - Cibyl
|
||
is an environment to compile and run programs written in C, Objective-C,
|
||
C++ and possibly Fortran on J2ME phones.</li>
|
||
<li><a href="https://nikita36078.github.io/J2ME_Docs">J2ME Docs</a> -
|
||
Documentation for J2ME and some vendor-specific APIs.</li>
|
||
<li><a href="https://github.com/shinovon/NNJSON">NN JSON</a> - JSON
|
||
parser for CLDC 1.1.</li>
|
||
<li><a
|
||
href="https://github.com/gtrxAC/discord-j2me/tree/main/src/cc/nnproject/json">NN
|
||
JSON CLDC 1.0</a> - Modified version of NN JSON for CLDC 1.0.</li>
|
||
<li><a href="https://j2megamescript.sourceforge.net/">J2ME Game Script
|
||
Engine</a> - A lightweight script interpreter for building flexible J2ME
|
||
games, with a BASIC-like scripting language. Runs on J2SE/J2ME/Win C++
|
||
platforms; ideal for game rapid prototyping and customization.</li>
|
||
</ul>
|
||
<h3 id="ides">IDEs</h3>
|
||
<ul>
|
||
<li><a href="https://archive.eclipse.org/eclipse/downloads">Eclipse</a>
|
||
- Archive of all versions of Eclipse IDE.</li>
|
||
<li><a href="https://archive.org/download/netbeans-olds/6.1">NetBeans
|
||
6.1</a> - Mobility-pack, normal NetBeans and Java-ME SDK, all of them
|
||
are required to set up MIDP development environment.</li>
|
||
</ul>
|
||
<h3 id="sdks">SDKs</h3>
|
||
<ul>
|
||
<li><a
|
||
href="http://web.archive.org/web/20070210202710/http://www.extransit.com">Extra
|
||
Transit Mobile Interaction Suite</a> - IDE and SDK for J2ME specializing
|
||
in the development of internet-based applications.</li>
|
||
<li><a href="https://www.hecl.org">Hecl</a> - A mobile scripting
|
||
language based on Java, capable of running on J2ME-based devices.</li>
|
||
<li><a href="https://github.com/Enough-Software/j2mepolish">J2ME
|
||
Polish</a> - Open source, Ant-based build tool for J2ME that supports
|
||
building for multiple platforms including Blackberry and Symbian.</li>
|
||
<li><a
|
||
href="https://web.archive.org/web/20070314004015/http://innaworks.com/mBooster.html">MBooster</a>
|
||
- Optimizing suite for .jar files. Compresses images, audio, zip files,
|
||
and optimizes API calls.</li>
|
||
<li><a
|
||
href="https://web.archive.org/web/20061225061546/http://j2me-device-db.sourceforge.net/pmwiki/index.php?n=Main.HomePage">Micro
|
||
Code</a> - Cross-device development framework for J2ME. Supports more
|
||
than 100 devices.</li>
|
||
<li><a
|
||
href="https://archive.org/details/semc_java_me_cldc_sdk.2-5-0-6">Sony
|
||
Ericsson</a> - Supports various Sony Ericsson devices. Can run Mascot
|
||
capsule software too.</li>
|
||
<li><a href="https://dl.acm.org/doi/abs/10.1145/1462802.1462805">Soap
|
||
ME</a> - SOAP-compliant Web service container that supports dynamic
|
||
development.</li>
|
||
<li><a
|
||
href="https://www.oracle.com/java/technologies/javame-sdk/java-me-sdk-v30.html">Sun
|
||
Java Me SDK</a> <a
|
||
href="https://archive.org/details/sun_java_me_sdk-3_0-win">mirror</a> -
|
||
Successor to WTK that integrates CLDC/MIDP development.</li>
|
||
<li><a
|
||
href="https://www.oracle.com/java/technologies/java-archive-downloads-javame-downloads.html#sun_java_wireless_toolkit-2.5.2_01">Sun
|
||
WTK</a> - Official J2ME SDK by Sun.</li>
|
||
</ul>
|
||
<h2 id="emulators">Emulators</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/hex007/freej2me">FreeJ2ME</a> - J2ME
|
||
emulator with LibRetro, AWT and SDL2 frontends.</li>
|
||
<li><a href="https://github.com/TASEmulators/freej2me-plus">FreeJ2ME
|
||
Plus</a> - Active fork of FreeJ2ME.</li>
|
||
<li><a href="https://github.com/nikita36078/J2ME-Loader">J2ME Loader</a>
|
||
- J2ME emulator for Android.</li>
|
||
<li><a href="https://github.com/woesss/JL-Mod">JL Mod</a> - Fork of J2ME
|
||
loader with Mascot capsule v3 support.</li>
|
||
<li><a href="https://github.com/szatkus/js2me">JS2 J2ME</a> - J2ME
|
||
emulator for Firefox OS.</li>
|
||
<li><a href="https://github.com/shinovon/KEmulator">KEmulator nnmod</a>
|
||
- Open source J2ME emulator in Java, based on KEmulator 1.0.3.</li>
|
||
<li><a href="https://sourceforge.net/projects/pspkvm/">PSPKvm</a> - J2ME
|
||
emulator for PSP.</li>
|
||
<li><a href="https://github.com/squirreljme/squirreljme">SquirrelJME</a>
|
||
- Java ME 8 Virtual Machine for embedded and Internet of Things
|
||
devices.</li>
|
||
</ul>
|
||
<h2 id="hardware">Hardware</h2>
|
||
<ul>
|
||
<li><a href="https://mobilephonemuseum.com/about">Mobile Phone
|
||
Museum</a> - Registered charity and museum for mobile phones. Currently
|
||
has over 2,800 models over 250 brands.</li>
|
||
</ul>
|
||
<h2 id="native-software">Native Software</h2>
|
||
<h3 id="apps">Apps</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/gtrxAC/discord-j2me">Discord J2ME</a> -
|
||
Unofficial Discord client for J2ME. Utilizes a proxy server for HTTP and
|
||
gateway connections.</li>
|
||
<li><a href="https://github.com/baumschubser/hotpants/">Hotpants</a> -
|
||
HOTP/TOTP client.</li>
|
||
<li><a href="https://archive.org/details/j2me-emuSoftware">J2ME Emu
|
||
Software</a> - Executables, source code of various emulators that run on
|
||
J2ME.</li>
|
||
<li><a href="https://github.com/shinovon/JTube">Jtube</a> - YouTube
|
||
client based on Invidious API.</li>
|
||
<li><a href="http://arktos.se/meboy">MeBoy</a> - Supports emulating GBC
|
||
with sound, color, and save states.</li>
|
||
<li><a href="https://github.com/faissaloo/telegram-micro">Telegram
|
||
Micro</a> - Telegram client.</li>
|
||
<li><a href="https://github.com/VK4ME/client">VK4ME</a> - Unofficial
|
||
client for Russian social network VK for devices supporting CLDC 1.1 and
|
||
MIDP 2.0.</li>
|
||
</ul>
|
||
<h3 id="video-games">Video Games</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/rgimad/gravity_defied_cpp">Gravity
|
||
Defied CPP</a> - C++, SDL2 port of J2ME game of the same name.</li>
|
||
<li><a href="https://bluemaxima.org/kahvibreak">Kahvibreak</a> -
|
||
Collection of J2ME games.</li>
|
||
<li><a href="https://www.mobygames.com/platform/j2me">Moby Games</a> -
|
||
Database of J2ME games with links to official stores.</li>
|
||
<li><a href="https://archive.org/details/96x65pixels_j2me">The “New”
|
||
J2ME software archive</a> - 74GB+, sorted collection of J2ME games.</li>
|
||
<li><a
|
||
href="https://gist.github.com/hstsethi/d4ef0c9f0710e5b713d1beb2ff93a1ce">Nowhere
|
||
Dialogues</a> - Dialogues from a Nowhere, a 2007 J2ME game, with
|
||
character names reverse engineered.</li>
|
||
</ul>
|
||
<h2 id="related-projects">Related Projects</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/hstsethi/awesome-symbian">Awesome
|
||
Symbian</a> - An Awesome List about everything related to Symbian, a
|
||
discontinued mobile OS for ARM popular in the early 2000s. It supports
|
||
J2ME applications.</li>
|
||
<li><a
|
||
href="https://cellphonegamespreservation.miraheze.org/wiki/Main_Page">Cell
|
||
Phone Game Preservation Wiki</a> - Wiki dedicated to phone preservation,
|
||
including emulation and game dumps.</li>
|
||
<li><a href="https://j2me.fandom.com/wiki">J2ME Fandom</a> - Wiki of
|
||
everything related to J2ME.</li>
|
||
<li><a
|
||
href="https://github.com/j2me-preservation/j2me-preservation">J2ME
|
||
Preservation</a> - Archive of various J2ME software.</li>
|
||
</ul>
|
||
<h2 id="reverse-engineering">Reverse Engineering</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/CakesTwix/pylng">PyLng</a> - HandyGames
|
||
.lng file parser written in Python.</li>
|
||
</ul>
|
||
<h3 id="decompilers">Decompilers</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/fesh0r/fernflower">Fernflower</a> -
|
||
Analytical Java decompiler by JetBrains.</li>
|
||
<li><a href="https://java-decompiler.github.io">Jd Decompiler</a> - Java
|
||
decompiler with support for Java 5 and later.</li>
|
||
<li><a href="https://www.javadecompilers.com">Javadecompilers.com</a> -
|
||
Online Java decompiler that supports various decompilers.</li>
|
||
<li><a href="https://github.com/Col-E/Recaf">Recaf</a> - Bytecode editor
|
||
that supports multiple decompilers.</li>
|
||
<li><a href="https://github.com/vineflower/vineflower">Vineflower</a> -
|
||
Fork of Fernflower decompiler with improved output quality.</li>
|
||
</ul>
|
||
<h2 id="tutorials">Tutorials</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://www.oreilly.com/library/view/j2me-in-a/059600253X">J2ME In
|
||
Nutshell</a> - “Solid, no-nonsense reference to the ‘alphabet soup’ of
|
||
micro edition programming, covering the CLDC, CDC, KVM and more.”</li>
|
||
<li><a href="https://github.com/domib97/revive.nokia.n95">Revive Nokia
|
||
N95</a> - A quick guide to revive the legacy Nokia N95 and develop for
|
||
it.</li>
|
||
</ul>
|
||
<h3 id="academic-articles">Academic Articles</h3>
|
||
<ul>
|
||
<li><a href="https://doi.org/10.1109/EmbeddedCom-ScalCom.2009.21">A
|
||
Testing Method for Java ME Software</a> - Reviews various unit testing
|
||
methods for J2ME and introduces a custom one for NetBeans.</li>
|
||
<li><a
|
||
href="https://ieeexplore.ieee.org/abstract/document/5341641">Automated
|
||
GUI Testing for J2ME Software Based on FSM</a> - Introduces a technique
|
||
for automating tests of LCDUI J2ME applications based on FSM.</li>
|
||
<li><a href="https://dl.acm.org/doi/abs/10.5555/507165">Developing Jini
|
||
applications using J2ME technology</a> - Book on Developing networking
|
||
applications using Jini and J2ME.</li>
|
||
<li><a
|
||
href="https://www.cs.sjsu.edu/faculty/pollett/masters/Semesters/Fall03/Rekha/CS297Report.pdf">Distributed
|
||
Gaming using J2ME and XML</a> - Writeup on creating a cross-platform
|
||
using Oracle XML database for gaming.</li>
|
||
<li><a
|
||
href="https://ieeexplore.ieee.org/abstract/document/4446557">Experiences
|
||
of Implementing BitTorrent on Java ME Platform</a> - Detailed writeup on
|
||
implementing BitTorrent client on Nokia S40. Includes methodology and
|
||
results.</li>
|
||
</ul>
|
||
<p><a href="https://github.com/hstsethi/awesome-j2me">j2me.md
|
||
Github</a></p>
|