Main page > Java > Virtual machines

List of Java embedded products

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

http://www.charis.com/

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

http://www.ewesoft.com/

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 80x86 and SPARC hardware right now.

IBM VisualAge Micro Edition

http://www.embedded.oti.com/download/platform.html

These are runtime environments for embedded systems:

More information can be found at http://www-4.ibm.com/software/ad/embedded/.

Intent Java Technology Edition

http://www.tao-group.com

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/products/index.asp

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. CrEme is based on this product.

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

http://www.access-us-inc.com/product/develop/jv_lite2.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

www.savaje.com

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

http://www.rtjcom.com

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

http://www.skelmir.com

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

http://www.ibutton.com/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

http://www.wabasoft.com/

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 under a license similar to the GPL.