How To Install, Compile, Run Java On iPhoneBy Angsuman Chakraborty, Gaea News Network
Tuesday, June 10, 2008
iPhone doesn’t natively support Java / J2ME. However as a J2ME developer there are two good ways to develop iPhone applications using Java / J2ME. Read below for details and also to know how you can upload, compile and run Java applications on iPhone.
alcheMo-for-iPhone - Automated J2ME to iPhone porting solution
alcheMo for iPhone contains translator to convert J2ME application source code to equivalent C++ source code for iPhone.
No manual adjustments to the translated source code is required. Compiled using the standard Xcode toolchain and linked with alcheMo’s optimized run-time library, a native iPhone application is produced.
alcheMo for iPhone is capable of converting J2ME applications utilizing an extensive subset of Java ME CLDC 1.1 and MIDP 2.0 (including touch screen support) and supports several JSR extension APIs including the JSR-256 mobile sensor API. This automatic translation process is instantaneous, repeatable and doesn’t require iPhone specific experience.
Garbage collection and automatic memory management is one of the strengths of the J2ME environment. Unlike on Macintosh OS X, Objective C on iPhone does not support garbage collection. By incorporating an advanced garbage collector, alcheMo eliminates the need for manual memory management. Whole classes of common programming errors such as dangling pointers are thus prevented.
The initial version of alcheMo for iPhone is optimized for mobile games.
The bad news is that their beta program has closed on April 24th, while they are preparing for commercial release. alcheMo for iPhone has backing from Sun Microsystem.
BTW: During Java One 2008, Sun officials repeatedly mentioned that they successfully ran Java on iPhone but are thwarted only by Apple’s licensing restrictions in publicly announcing it. alcheMo circumvents Apple’s licensing restrictions with their language translator.
Using Java on Unlocked & Jailbraked iPhone with Installer
Note: The legality of the procedure below is dubious. IANAL.
First you need to unlock and jailbrake you iPhone. You can use the windows user interface for ZiPhone to jailbreak, unlock and activate any verion of iPhone.
Then you need to have the installer app on iPhone. Installer.app is a UIKit based package manager for the iPhone. It works by downloading packages over WiFi (wireless networking) or EDGE. It supports installing, updating and uninstalling applications from multiple sources.
winpwn can simplify the above steps for you.
Now go to Installer and install Mobile Terminal and Cydia Installer. Restart iPhone.
Run Cydia Installer and go to Java section and select iPhone/Java which will install the virtual machine, libraries etc. Then install Jikes (java compiler). Now restart iPhone again.
That’s it, you are done.
How to load, compile & run Java applications on iPhone
First install Java on iPhone following instructions in the section above before reading this.
You can upload Java files to iPhone using iPhone Browser.
Run Terminal (installed above) and use java (jikes) compiler to compiler your program. For example:
jikes -cp /usr/lib/rt.jar MyFirstJavaProgramForIPhone.java
You can run the class file as usual:
Java on iPhone - Concluding thoughts
The second method (using jailbraked iPhone) suffers from three major problems.
1. To use your Java applications, your user will also have to jailbrake their iPhone. As such its usage will be limited to highly technical people who are not afraid of tinkering with their costly iPhone and potentially even risk damaging it permanently!
2. While it may be fine for experimenting, the legality is dubious. You may run into problem with Apple for selling or even distributing such applications.
3. The jailbraked versions of iPhone may not be compatible with future firmware updates, and Apple will try their best to disable them at every opportunity and had done so in the past.
All of the above makes method 2 unsuitable for commercial use.
Commercial J2ME developers have to wait for commercial release of alcheMo-for-iPhone. Innaworks is well known for porting standards compliant J2ME to BREW mobile platform. I expect their solution to be ready in 2-3 months time. If you do not have the time then download Apple’s iPhone SDK and start coding in Objective C.
BTW: Make sure you read the iPhone SDK agreement carefully before you invest huge sums in iPhone development.
And if You are really interested in Apple iPhone then you must visit our cool collection of iPhone articles. This ranges from How to Increase iPhone Battery Life by 4.5 Hours to 25 iPhone Apps for Designers - Incredibly Useful Collection to Top 10 Green iPhone Apps and even absolutely hilarious 10 Funny iPhone Apps to Annoy your Mother-in-Law. I am sure you will love the collection.
Tags: alcheMo, Future, Green, Innaworks, iPhone, J2ME, Mophie