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.
To get started with J2ME, do the following steps: set up a Windows XP machine; download and setup JDK; Download Java ME SDK 3.4; Install Netbeans 6.1 and follow the instructions to add J2ME SDK as platform.
You can test your setup by compiling and running following code:
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class HelloMIDlet extends MIDlet {
private Display display;
private Form helloFrm;
public HelloMIDlet() {
helloFrm = new Form("Welcome To Awesome J2ME!");
}
protected void startApp() {
display = Display.getDisplay(this);
display.setCurrent(helloFrm);
}
protected void pauseApp() {
}
protected void destroyApp(boolean unconditional) {
}
}
As you can see, functions like pauseAPP, destroyAPP, startApp are necessary, and must be decelared.
Introducing Awesome J2MEAwesome J2ME, an Awesome list that I have been working on for more than a year. The goal of this project is to create a comprehensive resource that will be helpful to the whole community. Not only developers, video gamers, hobbyists but anyone who is interested in J2ME.
I managed to collect a diverse set of resources, and submit a pull request that passed all the checks in first try. But sadly, due to small community size, most communities being hosted on proprietary platforms, lack of resources, exams and abandonment of J2ME by Oracle, I was not able to completely fulfill my goal.
So I would like to request you to help me in achieving this goal. Pull requests are always welcome. If you can’t think of any good resource, simply sharing and giving it a star on Github is more than enough.
Thank you.
Earlier there was a chronological note on history and backstory of Awesome J2ME. But I felt like it was too focused on me. There was also a section on my reverse engineering projects on DOS. I now find DOS unrelated to the topic. I consider Awesome J2ME as a community project, hence I have removed them.
Though a short summary is there. In case you want more info, please go through the Git log or contact me.
Awesome J2ME was created on 2023-07-13 as a public GitHub list from a private draft.
On 2024-07-24 I submitted pull request to the main Awesome repository. It passed all 33 automated checks on the first try. But it was not merged until 2025-05-15.
On 2025-04-10, Awesome Symbian was released. While J2ME can be used to create software for Symbian as well source, but I feel like it deserves it own Awesome list focused on it's own native C++/QT environment.
I am very thankful to the J2ME community and everyone else for contributions, promotions and giving it a star.