The products in this section are designed for embedded systems, usually with very
limited resources (in terms of both memory and CPU power).
They sometimes are integrated with an operating system.
Sun has come up with PersonalJava and
EmbeddedJava – some of the products
below are compliant with these application environments.
Charis
The Charis pVM (pico Virtual Machine) is available for Win9x and NT, Linux, ARM7,
Hitachi’s H8-300H and Patriot Scientific’s PSC1000.
It is primarily meant for micro-controller based embedded systems (the ARM7
VM is stored in 32K of ROM).
A demo version can be downloaded.
Seems to be commercial.
Ewe
The Ewe programming framework is meant for environments with restricted resources.
It includes a virtual machine which is not fully Java-compliant as well
as a class library of its own.
Thus, a Java VM can execute any Ewe program, but the Ewe runtime environment
cannot execute any Java program.
Ewe is an extension of Waba.
GENEVA
http://www.180sw.com/HTML/geneva.html
Geneva is a Java Virtual Machine running on the
ORIGIN architecture,
supporting all features of a normal JVM except for the graphics part of
the runtime libraries.
It is targetted at embedded systems (smartcards, handhelds, mobile phones etc.),
can run on 8-bit-systems, seems to work with 80×86 and SPARC hardware right now.
IBM VisualAge Micro Edition
http://www.embedded.oti.com/download/platform.html
These are runtime environments for embedded systems:
- PalmOS/68K,
- QNX/Neutrino PowerPC,
- QNX/Neutrino 386,
- QNX/Neutrino x86,
- QNX/Neutrino MIPS,
- QNX/Neutrino SH-4,
- Linux x86,
- Linux PowerPC,
- Linux StrongArm,
- Windows CE/ARM,
- Windows CE/MIPS,
- Windows CE/SH3,
- Windows CE/SH4 and
- Windows x86.
More information can be found at
http://www-4.ibm.com/software/ad/embedded/.
Intent Java Technology Edition
The intent JTE (Java Technology Edition) includes a Java VM using to be used
on low end embedded devices.
They aim for speed and a small memory footprint.
Seems to run with the QNX 4 operating system.
Jamaica
http://www.aicas.com/jamaica.html
Commercial JVM with real-time capabilities for embedded systems.
Available for Linux, VxWorks, QNX, Linux/RT, NetOS (NetSilicon),
ThreadX, Solaris, Euros, embOS and any POSIX-RTOS on different CPUs.
Jeode
http://www.insignia.com/4.0/products/jeode.htm
A virtual machine compliant with the PersonalJava 1.2 and EmbeddedJava 1.0.3 specifications.
It is available for the following operating systems:
Windows CE 2.12 and 3.0, Windows NT 4, VxWorks, Linux, ITRON, Nucleus,
BSDi Unix and pSOS.
The following microprocessor architectures are supported:
ARM, MIPS, x86, Hitachi SuperH-3, Hitachi SuperH-4 and PowerPC.
Was bought by Esmertec.
JSCP
http://www.nsicom.com/Default.aspx?tabid=137
JSCP (the Software Co-processor for Java) is a Java virtual machine for embedded systems.
It is especially suitable for real-time systems – their special real-time capabilities can
still be used.

JTime
http://www.timesys.com/index.cfm?bdy=java_bdy.cfm
JTime is a virtual machine for embedded systems, with real-time capabilities.
It is J2ME CDC v1.0 certified by Sun and comes with an optional ahead-of-time compiler.
It is available for the PowerPC and IA32 (x86) architectures.
JV-Lite 2
http://www.access-company.com/products/java/index.html
JV-Lite2 is a virtual machine implementation for both PersonalJava and EmbeddedJava.
It works under Linux, VxWorks, µITRON and other real-time operating systems.
Kada
http://www.kadasystems.com/kada_vm.html
The Kada VM is aimed at the embedded market, having a small memory footprint.
The PersonalJava API is implemented.
Versions for Palm OS and Win32 (to debug) are provided.
Was bought by Esmertec, the VM is no longer available.
Microware
http://www.microware.com/Products/Software/java.html
A PersonalJava environment (including a virtual machine) for the OS-9 real-time operating system.
NanoVM
http://www.harbaum.org/till/nanovm/
A Java virtual machine for the Atmel AVR ATmega8 CPU.
Supports only a subset of the Java language and class library.
OSE
http://www.enea.com/prodserv/wireless/jruntime.asp
OSE Personal JRuntime is a PersonalJava compatible application environment
for the OSE realtime operating system, aimed at embedded systems.
Palm
http://java.sun.com/products/kvm/
Sun’s K Virtual Machine (K for kilobyte) is a small JVM which is available for
the Palm OS devices version 3.01 or higher.
It contains a subset of the Java 1.1 classes, including some of the AWT GUI components.
You’ll need a (free) registration to get the SDK.
You might also want to check out kAWT, an
abstract window toolkit for the J2ME CLDC KVM.
Perc
http://www.aonix.com/perc.html
The Perc JVM is a commercial product with real-time capabilities for embedded systems.
It can be tuned to prefer runtime performance, startup time or memory footprint.
It is available for a variety of operating systems (NT, Linux, Solaris, VxWorks, RTX, pSOS,
CE, OSE Delta, BeOS, ETS) and processors (x86, PPC, MIPS, ARM, SPARC, and 68k).
Support for several IDE’s and other development tools is included as well.
A free evaluation kit for Windows NT can be downloaded from the homepage.
savaJe
SavaJe XE is a 32-bit multi-tasking, multi-threading operating system with integrated 1.3 J2SE (virtual machine and runtime library).
The OS has a 12 MB ROM footprint, minimum hardware requirements are 32 MB RAM and a 190 MHz Intel StrongARM processor.
Currently works on the Compaq iPAQ handheld computer and the Psion netBook.
The 1.0 release is planned for 09/2001, a single copy license will cost USD 100.
simpleRTJ
A virtual machine with a small memory footprint aimed at embedded systems and
real-time operating systems.
Only a subset of Java is supported (e.g. no double type).
The following processors are supported (according to the site):
MC68302, MC68376/332, 68HC11, 68HC16, 8051, 8051XA, various ARM derivatives,
H8S/2241, STi5512 (RISC set-top-box), DSP56300, and others.
This is a commercial product.
However, use of the VM is free for evaluation, educational and private use.
Skelmir
Skelmir offers the CEE-J
virtual machine for embedded systems (compatible with JDK 1.1.8).
It is designed to have a small memory footprint and be easily
portable to new environments (see the FAQ for details).
Skelmir also provides the
Mercury compilation
technology.
It increases the execution speed of Java-based servers.
TINI
The TINI (Tiny InterNet Interface) platform is aimed at connecting
devices from sensors to factory equipment to a network.
The TINI virtual machine
(for the TINI OS operating system) has a memory footprint of less than 40 KB.
It offers only part of the runtime library: java.lang, java.io, java.net and java.util.
TinyVm
http://tinyvm.sourceforge.net/
The TinyVM is a small virtual machine to run as a replacement firmware on the
Lego Mindstorm RCX microcontroller.
It only offers a very small subset of the runtime library but limits itself to
about 10 KB of memory.
Waba
A subset of the Java programming language’s syntax, class file format
and virtual machine, Waba is designed for embedded systems.
Waba programs can usually run on a Java Virtual machine, but not
vice versa.
The VMs are available for PalmPilot and Windows CE devices.
Wind River’s vxWorks
http://www.wrs.com/internet/html/java.html
Wind River provides a JVM for their real-time operating system VxWorks.
Wonka
http://wonka.acunia.com/index.html
A clean-room implementation of a Java virtual machine for embedded devices, with emphasis
on portability and efficiency.
Available for Linux (x86 and ARM), distributed undera license similar to the GPL.

