Converting Java (J2ME) Applications to Android .apk Format

Shortlink:

If you just got a new android phone, running java applicatons in .jar format can be a real challenge but there are lots of ways out. I previously wrote a post on how to run java applicatons on Android smartphones using an emulator but what I’m posting here is totlally different. Yes, you can convert .jar files to Android’s .apk format. Sounds impossible? Well, it can be done easily with the service of a couple of websites but I need to make a few things clear about Android applications.

how to convert .jar / .jad / java / J2ME / MIDP 2.0 applications to Android .apk format

Android .apk Files – Can they Really be Decompiled?

You’re probably not an Android developer but just an ordinary guy like me, so I’m going to keep this simple and straight.  At first, the extension Google uses for Android applications (.apk) may look complicated but it actually isn’t. Basically, an apk file is nothing but a zip archive disguised in a different extension. You think I’m joking? Just rename the .apk extension to .zip and extract the content to see exactly what I’m trying to say. Inside this zipped archive is a file named classes.dex which is the most important file in there containing all the java files. This file is encrypted but it can still be disassembled. The java classes are compiled differently so there’s need to go through some special steps to decompile them. You’re going to need these two files:

  1. Dex2Jar from http://code.google.com/p/dex2jar/
  2. A regular Java decompiler, such as JD from http://java.decompiler.free.fr

-Unzip dex2jar.

-In dex2jar directory, paste your classes.dex file.

-Open CMD, go to dex2jar durectory using cd, and type dex2jar YourApp.apk

-You will automatically get a .jar. Use jd gui to decompile it.

How to Convert .jar/.jad (J2ME/MIDP 2.0) Applications to Android .apk Format

Everything I’ve been ranting about is not the real thing you’re looking, huh? Anyways, I found two sites where you can easily convert .jar applications to .apk format and run it smoothly on your Android smartphone.

1. Netmite

This offers this service free of charge and I can tell you that their service is quite cool. You can check them out and, of course, it’s very easy to use. Just upload your java application and the jad format to get the android version! You can use JADMaker to get the .jad version of your java application.

2. Upontek

These guys too offer the same service but hey, it’s not for free. If you’re a developer, you may want to check out their service and some extras they’ve got for you.

That’s all I’ve got on converting .jar applications to Android .apk format. There may be other websites offering the same service though.

Filed Under: Android





Author: Don Caprio

Don Caprio is a full time blogger / web designer living in Nigeria and apart from blogging, my other obsession is music. I'm a self-confessed Tupac fan, an iOS lover, an Android user, a Windows 8 power user, a writer with a 5-year old unfinished novel... and the list goes on and on. You can add me on Facebook, follow my updates on Twitter or add me to your circles on Google+! By the way, if your blog needs a custom design, you can contact me here...

Comments

  1. Hello don caprio can you tell me the process how can i run a java application on my pc on windows xp operating system. Hopefully you will.

  2. Waiting for your post@ don

  3. Not so late at all. Nice job.

  4. Michal Geva says:

    Don, I liked your post. Your understanding of UpOnTek’s service is accurate. The service is targeted at application developers that are interested in converting their apps from JavaME to Android. The service includes the ability to continue development of the app in JavaME and Android Feel free to contact me if you want additional details. Michal

  5. thanks for this amazing information :)

  6. thank you very much!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  7. hii i am ur regular reader of ur blog . past week i encounter an problem i was playing java games but after that i install gangstar rio city of saints but it didnt get run properly. after chosing instant play on the homescreen the game stops and says that the midlet is running out of memory. i tried clearing data but it wont work. please help me my phone info is samsung galaxy ace gts5830i android version 2.3.6 also suggest me some java game sites for my screen size thanks

    • Hi Anil, Thanks for following my posts on this blog. Since the games are converted, there may be some compatibility issues once in a while. You can try sefan.ru and nokiazone.ru for more java games.

  8. I tried it and it worked. Gonna share this to my friends on FB

  9. You are briliant man…………. thank you………………………………..

  10. What is CMD & cd, where do i find these???

  11. raj kumar says:

    Applications to Android its good article

  12. i cant wait to download this on my android mobile

  13. Hello Don I found your site very helpful . Thank you

  14. Brian Johnson says:

    Thanks again Don for sharing this useful post for all of us here. Already saved it on my bookmark list. I think there are so many Java applications that just can’t be forgotten even though we already moved on to Android-installed phone. My favorite java game so far and i’m still playing it until now is Pro Evolution Soccer 2009. Damn, this game is brilliant, genius, awesome, amazing, incredible and insanely great. You definitely should check it out if you’re die hard soccer fan. Even though the graphics are still in cartoon, but the gameplay is TOP NOTCH!!!

  15. hi don………..i tried converting my 2go.jar with the netmite severally buh i keep gettin error converting……..what am i doin wrong?

Share Your Comments & Feedback:

Please do NOT use keywords in the name field because they won't be linked to anything anyway...just use your real name. Let's try to have a personal and meaningful conversation.

Commenting Note(s):
To insert code into comments, use: [php]code in here...[/php]
Some HTML tags allowed: <strong>, <em>, <del>, etc. (Just don't overdo it, please!)