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.
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.
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.
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.
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/.
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.
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.
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.
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.
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.
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.
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.
http://www.microware.com/Products/Software/java.html
A PersonalJava environment (including a virtual machine) for the OS-9 real-time operating system.
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.
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.
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.
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 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.
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 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.
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.
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.
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.
http://www.wrs.com/internet/html/java.html
Wind River provides a JVM for their real-time operating system VxWorks.
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.