JamVM is a new Java Virtual Machine which conforms to the JVM specification version 2 (blue book). In comparison to most other VM's (free and commercial) it is extremely small, with a stripped executable on PowerPC of only ~200K, and Intel 180K. However, unlike other small VMs (e.g. KVM) it is designed to support the full specification, and includes support for object finalisation, Soft/Weak/Phantom References, class-unloading, the Java Native Interface (JNI) and the Reflection API.JamVM currently only includes an interpreter (keeps it small). However, the interpreter is highly optimised, and performance is on par with a simple JIT. As most of the code is written in C it is easy to port to new architectures.
JavaOne is one of the most interesting events in IT industry. We are expecting a lot of talks about Java and other technologies. One IPhone+Java - related talk was already mentioned at Java4IPhone.com (link). There are couple more of them.
How to Port phoneME™ Advanced Software to Google Android, iPhone, OpenMoko, LiMO, and MoreHinkmond Wong (Sun Microsystems)
May 07, 14:50 - 15:50
Dancing Duke on Your PlayStation Portable: Porting phoneME™ Software to PlayStation Portable Max Mu (Sun Microsystems); Kuo Wang (iaSolution Technology Limited)
May 08,19:30 - 20:20
Extending Swing to Run Multitouch Applications (Multitouch Software)Michael Riecken (Trissential, LLC)
There are two ways to enable Java applications run on the IPhone. The first one is to port Java to IPhone, and this is preferrable The second way is to create automatic Java to IPhone porting solution for individual applications.
A company called Innaworks announced an interesting product called alcheMo. alcheMo is an automated system to port J2ME application to a native platform such as BREW and IPhone.
alcheMo technology is basically J2ME to C++ translator and the run-time library. It converts Java application to C++ application, which can be compiled, run and debugged. Using native run-time libraries the native executable is created. The alcheMo run-time library provides equivalent functionality to those associated with J2ME, including support for automatic garbage collection, multi-threading and extensive subsets of CLDC 1.1 and MIDP 2.0, and extension JSRs.
There are several examples of porting games to BREW platform. Hopefully there will be some for the IPhone in the near future. For now alcheMo is in beta state, potential developers are invited to join.
By the way, alcheMo for iPhone supports the accelerometer, the touch screen and other unique iPhone features, through standard MIDP 2.0 API, JSR-256, and, where necessary, extension APIs. If J2ME application uses such APIs, it will automatically and immediately be accelerometer or touch screen capable on iPhone.