Show HN: Awesome J2ME
23 comments
·November 20, 2025mghackerlady
Someone should make a 4G LTE/5G dumb phone capable of running J2ME. I'd buy it, my dumb phone doesn't even have snake on it lol
yanslookup
The first thing I ever wrote that other people used was a j2me app freshman year in college. It was a power hour app that played a random simpsons .wav every minute.
I was a pretty poor CS student, in hindsight I'm surprised I got it to work.
embedding-shape
One of the very first "hacks" I did was finding instructions via a random WAP website on how to patch a J2ME game for some early phone that could run .jar games, in order to effectively crack it.
devsda
Ah, the good old days of browsing wap sites to download "apps". Installing some of them only to find that my budget phone doesn't support the j2me profile required to run them.
The java ecosystem of those days had similar terms like the servlet (still surviving), applet & midlet. Is there a significance of the suffix "let" or somebody thought let's add "let" to everything.
tacker2000
I remember creating a J2ME game back at uni, where the theme was to pour a beer exactly right.
Tested of course on the latest SonyEricsson of the time!
Maybe i can dig that out again and run it somewhere.
Raed667
Blast from the past ! I remember building my last J2ME project ~2012 and struggling to find a Nokia phone to test it
mooreds
Wow, brings back memories!
I used j2me in the early 2000s to make a mobile app where people could find home data. My first startup experience. Learned a lot but didn't earn a lot.
Wrote a paper about MIDP here: https://www.mooreds.com/midp/midp.html . No idea if it is still relevant 20 years on.
catstor
I am glad it was helpful.
Thanks for the paper as well. It explains concepts very clearly with a real-life problem statement. Added it to Awesome J2ME.
fidotron
Wow this brings back a lot. I did J2ME at Macrospace/Glu, Masabi, Javaground and EA, and at one point near the end was simultaneously responsible for 128k jars of Tetris and 4GB apk + obb for Real Racing because that is how rapidly the field exploded. Absolute madness.
J2ME gets a lot of stick, but modern mobile has actually recreated almost all the same problems. The big one for apps was the out of the box UI components were awful and utterly inconsistent between manufacturers. Several of the above companies tackled this (think conceptually like Flutter), but the market wasn't ready largely because data plans were expensive.
For games though, honestly, J2ME was dreadful, but in non-obvious ways: the control interfaces were hopeless, and sound was basically a non starter. People would be willing to forgive a lot more had the controls and sound been decent. Then the graphics stuff was just inconsistent enough that too much time ended up focused on portability and not enough on if the game was actually as fun as it should be. A consequence of that is most of the best J2ME games were ports from other systems or shameless reskins of other things.
But there is something to be said about taking a tube/metro/bus and seeing people playing stuff you did and enjoying it, especially given back then it was impossible to know who the players really were since things were sold through the carriers.
foofoo12
Brings back memories but I can't say they are good. It was so limited that it was mostly frustration.
zerr
Would interesting to hear about J2ME gold rush. Any success (or fail) stories?
fidotron
It was really a euro thing. Think the whole Jamba/Jamster ecosystem (Crazy Frog) and the explosion that occurred with premium SMS and ringtones.
It was all about selling into carriers associated with that, and that was a recipe for pain. I don't believe anyone made a killing in J2ME directly (Gameloft gave the impression of making most money, not entirely undeservedly), and many absolutely struggled, but it did provide the crucible for a lot of what came later.
One of the more curious incidents that stayed with me related to the game "Fatal Force" which had a 64kb build that was incredibly tight. We were mystified to discover a Chinese pirate was distributing a Chinese build of the game, still within 64kb limits. He had decompiled it, reverse engineered it, added more compression so he could fit in localized assets, and released it. The last I heard on the subject there was an effort to pay him for it.
The other was when a game of a game show was advertised in Germany, during the game show, it would generate such a traffic spike that the servers selling the game got knocked out, leading to requiring outsourcing that function to a more scalable competitor, a lesson that was not forgotten for the next company.
flykespice
BTW there is J2ME Loader, a free j2me emulator for android devices available through PlayStore, it plays very nice (you can customize your keys too).
One I noticed is j2me games often don't play music on the background and just resorts to sporadic sounds, any reason for that?
catstor
[dead]
invalidname
No LWUIT?
ptx
LWUIT wasn't particularly awesome, in my opinion. It was enormous and hideous and couldn't integrate with the native cut-and-paste functionality offered by some phones.
invalidname
Well... 64kb isn't exactly enormous for the type of functionality it offered. It did support copy and paste you just had to enter editing mode. The underlying APIs didn't offer access to copy and paste directly.
Having said that, it doesn't really matter if you didn't like it. It was a pretty big part of the J2ME ecosystem at the time and it's a huge omission.
catstor
[dead]
An awesome list about Java platform Micro edition(J2ME). Documentation, academic papers, tutorials, communities, IDEs, SDKs, emulators, apps, video games. J2ME is a Java specification designed for old keypad phones and PDAs. MIDP, which is built upon CLDC, is used to create Midlets, which have `.jad` or `.jar` extension, and run on platforms like old keypad phones, Symbian and PDAs. MIDP is supported till Java ME SDK 3.4.