Java Virtal Machine.net
home > jvms, jdks and jres

JVMs, JDKs and JREs

Introduction

This page is supposed to give an overview of Java virtual machines (JVMs), Java development kits (JDKs), Java runtime environments (JREs) and related products. There are four major sections:

JDKs and JREs

Listed in alphabetical order of the platforms / operating systems / enterprises / organizations that are responsible for them. If the "deep" links don't work, try the second-level domain (e.g. www.apple.com instead of www.apple.com/java/) and tell me about it!

Amiga

http://www.ringlord.com/people/walrus/amiga/java.html

The link is an introductory text to Java on the Amiga platform, not a VM or compiler. But it seems to have been updated lately. Except for an older Amiga version of Kaffe there seem to be only two unfinished projects, MOca (suspended) and MERAPI (message from April 1999 that the project will take more time).

Apple

http://www.apple.com/java/

http://devworld.apple.com/java/

Apple offers the Mac OS Runtime for Java (MRJ) 2.2, which is compatible with the 1.1.8 release of Sun's JDK. A PowerPC Mac with Mac OS 8.1 or later and at least 40 MB of RAM is required to use this version of MRJ. A Just-In-Time compiler from Symantec is part of the distribution as well. Help with an MRJ plugin for the Netscape 4.x and Mozilla 5.x web browsers can be found here.

A Java 2 Runtime Environment (1.3) is shipped with MacOS X. There are no plans porting any Java version higher than 1.1 to any older Mac OS.

BeOS

BeOS seems to be dead (see its website, Be Inc. have sold their assets to Palm Inc), that's why I have removed information on a planned 1.2 compatible JDK.

A quick and dirty port of Guavac 1.2 to BeOS/Intel is available at http://www.bebits.com/app/1195.

A project to port Kaffe to BeOS is at http://bekaffe.sourceforge.net/.

Blackdown

http://www.blackdown.org/

JDKs for different flavors of the Linux operating system (Intel, PowerPC, Sparc / Sparc64, m68k, ARM, MIPS). See the ports page for more details on the status of development and tests of 1.2.2 and 1.3 kits and runtime environments. Sun and Blackdown now work on the same code base for 1.3.

Blackdown recently announced their Linux / ARM J2SE 1.3.1 runtime (release candidate 1) that works on an iPAQ.

BSDi

http://www.bsdi.com/java/

Java 2 is available for BSDi Internet Super Server 4.1 (and soon for FreeBSD as well, according to the website). No word about which version (1.2, 1.3) exactly is implemented. Note also that you must have a support contract with BSDi to be able to download the development kit.

Bull

http://www.servers.bull.com/gcos7/

They provide a 1.1.6 JDK with GCOS 7 and higher. A 1.2 JDK is planned for the future.

CrEme

http://www.nsicom.com/products/creme.asp

CrEme is a version of Sun's JVM adapted for the Windows CE platform.

Data General

http://www.dg.com/products/html/jdk.html

They provide a Java-2-compatible SDK for their DG/UX operating system.

decaf

http://www.metamech.com/wiki/view/Main/decaf

The virtual machine for the Java-based operating system JOS.

Digital / Compaq

Tru64, Windows NT / Alpha, Linux / Alpha, OpenVMS / Alpha

http://www.digital.com/java/index.html

Plug-ins, JDKs and JREs in various versions (up to 1.3.1) for Tru64 UNIX, Windows NT / Alpha, OpenVMS / Alpha and Linux / Alpha.

Compaq iPAQ PocketPC

http://www.insignia.com/content/products/otherJeode.shtml

A PersonalJava compliant virtual machine for the iPAQ PocketPC. It can be bought directly from Insignia (it is no longer sold at compaq.handango.com).

Also see Jeode and Blackdown.

http://csc.dhs.org/java.php

At that page you will find a javac wrapper and notes on how to run Swing with Sun's PersonalJava edition for the iPaq.

FreeBSD

http://www.freebsd.org/java/

A 1.1.8 compatible JDK for FreeBSD is available as well as a patch to make Blackdown's 1.2 RC-3 JDK run. A 1.2.2 version is in beta state since October 14, 2000.

22-12-2001: FreeBSD Foundation Announces Java License for FreeBSD.

Another project can be found here. It is porting the 1.2.2 JDK to FreeBSD. There are also plans for ports to NetBSD and OpenBSD.

Fujitsu / Siemens

http://www.fujitsu-siemens.com/servers/java/java_us.htm

They offer 1.2.2 JDKs (J2SE and J2EE) for Reliant UNIX and BS2000, including JIT technology. Native code compilers are also available.

Hewlett-Packard

HP-UX

http://www.unix.hp.com/java/index.html

A 1.2.2 SDK and JRE are now available for HP-UX 11.0 as well as 1.3 beta versions. You can also get a 1.2 compatible plugin for the Netscape Navigator.

Chai

http://chai.hp.com/

HP Chai seems to be a VM for embedded systems. The HP Journada PDA is linked directly from the site. According to this article, it has a memory footprint of about 250 KB.

IBM JREs and JDKs (1.1 to 1.3)

http://ibm.com/java/jdk/

IBM offers JREs and JDKs (mostly 1.3) for

  • AIX,
  • Linux (x86 only),
  • OS/2,
  • OS/390,
  • OS/400,
  • VM/ESA,
  • Windows 3.1 (alpha-level code),
  • all Win32 flavors: Windows 95, Windows 98, Windows ME, Windows NT, Windows 2000) and
  • beta versions for Windows 2000 and Linux on the Itanium platform (the virtual machine being a true 64-bit application).

joeq

http://joeq.sourceforge.net/

A Java virtual machine written in Java, 1.3 compatible, primarily for research purposes. Available for Windows and Linux x86. Distributed under the LGPL.

JRockit

http://www.jrockit.com/

A 1.3 compatible JRE for Windows NT/2000, Solaris/SPARC and Linux x86, which aims for high execution speed and good scalability, to be used on server systems.

MachJ

http://www.machj.com/

A 1.1 compatible virtual machine written in C++ that rewrites bytecode for fast execution, no JIT included to remain portable. No word about what platforms exactly you can get it for, though. It is licensed in source form for a one time 75,000 US $ fee.

Microsoft

http://www.microsoft.com/java/

Microsoft provides VMs and SDKs for the Windows platform (x86 and Alpha) compatible with JDK 1.1, also plugins for their web browsers Internet Explorer 4 and 5. They also offer ways to take advantage of native Windows libraries (Windows Foundation Classes for the GUI, COM services, etc.). After some legal battles with Sun, nothing but patches to their 1.1 compatible products can be expected from Microsoft.

NetBSD

http://www.quick.com.au/java/

A 1.1.6 compatible JDK and JRE for NetBSD/i386. You can get 1.1.8 RC 1 here. Work on 1.2 has been stalled due to Sun's licensing methods.

Novell

http://developer.novell.com/ndk/kitnav_java.htm

Novell offers a SDK and a VM (1.3) for Netware 5.1 (with the latest support pack) or higher.

OpenBSD

http://codemonkey.net/mailman/listinfo/openbsd-java

This is a mailing list for the development of a native OpenBSD version of Java 2.

Oracle

http://www.oracle.com/java/

Oracle provides a J2EE compliant development kit in combination with their Oracle 8i database product. Oracle 9i seems to be on the way.

Psion

http://www.industrial.psion.com/java/java.htm

Psion creates handheld computing devices running on the EPOC 16/32 operating systems. The JVM is fully compatible with 1.1.4, but no 1.2 version is planned (due to memory constraints). It takes 3 MB of RAM. It has been created as a joint venture with other industry players at Symbian Ltd.. To be able to download, you must be a member of the Symbian Developer Network. Get the SDK at http://www.epocworld.com/downloads/sdks/er5sdks.htm. It is reported that the JRE will run on a

Also see savaJe, an operating system with a built-in 1.3 JRE available for the Psion Netbook.

Interesting articles:

Two other non-official projects exist which are listed below - they don't seem to make much progress.

SCO

http://www.sco.com/java/

You will get a 1.2.2 JDK for UnixWare 7 as well as SCO OpenServer 5.0.2 etc.

Sequent DYNIX/ptx

http://www.sequent.com/direct/software.asp

Get 1.2.1 and 1.1.2 compatible JDKs for a Sequent system with DYNIX/ptx V4.4.5 or later.

Silicon Graphics

http://www.sgi.com/developers/devtools/languages/java.html

A 1.3 compliant JDK and JRE for Irix, plus the Java 3D library that makes use of the underlying OpenGL hardware. Older versions (1.2.2, 1.1.8) are still available as well.

Sun

http://java.sun.com

Sun has designed the Java programming language, its runtime libraries and the virtual machine specification. Unfortunately, it is a bit confusing to try to find out what exactly Sun is offering. The following list of Java 2 Micro, Standard and Enterprise Edition packages may not be complete:

  • J2SE / J2EE 2 for Solaris (SPARC and x86), Linux (x86 only) and Win32,
  • J2ME for Palm OS 3.x+,
  • J2ME for Windows CE.

Once you get a free developer login, you can also learn more about early access versions of Sun's Java products.

An introduction to the J2ME and the confusing terminology around it was written by Gerd Castan: Wireless Java. A similar article from Sun's point of view is Introduction to Consumer and Embedded Technologies by Monica Pawlan.

Symbian

http://www.symbian.com/technology/standard-java.html

Symbian has created a 1.1.4 compatible JVM and SDK for the EPOC operating system. See the Psion section. A newsgroup for Java programming is discussion.epoc.Java which can be found on the server publicnews.epocworld.com.

Websprocket

http://www.websprocket.com/

Websprocket provides two products, VMServer and VMFoundry. VMServer is a 'proxy Java Virtual Machine' that runs bytecodes for thousands of clients connected to it, making it unnecessary for those clients to run the VM themselves. VMFoundry converts Java bytecode to a native representation that requires no virtual machine on the target system.

Standalone Java virtual machines

Standalone virtual machines don't come with the standard classes (the runtime library) which are typically stored in a file called rt.jar or classes.zip, so they are not "ready-to-use" as a Java runtime environment (JRE). It is sometimes recommended to use Classpath or the runtime library that comes with Sun's JREs.

Many of the projects in this section are results - or work in progress - of some research facility.

Chockcino

http://chocky.mine.nu/java/

A 1.1 compatible virtual machine for RISC OS, also available for ARMLinux. Unfinished, but almost ready. Still, the page has not been updated since April 2001. Will not be free when it will be released.

Electric Fire

http://www.mozilla.org/projects/ef/

A JVM with a JIT for the Mozilla project. Available for Linux x86 and Win32, designed to be easily portable to other platforms, distributed under the Netscape Public License. It's in a very early stage of development.

IBM Jalape˝o

http://www.research.ibm.com/jalapeno/

A virtual machine for Java servers, written in Java. The project has recently become an open source project. The code is called Jikes Research Virtual Machine (RVM).

Intel

http://intel.com/research/mrl/orp/

http://orp.sourceforge.net/

Intel offers the Open Runtime Platform, which seems to be a set of tools including a just-in-time compiler, a virtual machine and a garbage collection module. The package on the download page includes C source code as well as precompiled Windows and Linux (x86 only, I guess) binaries. It is supposed to be used in combination with Classpath.org's runtime library. The tools are created by Intel's own Microprocessor Research Labs.

JanosVM

http://www.cs.utah.edu/flux/janos/janosvm.html

A virtual machine based on Kaffe, distributed under the GPL. Supports multiple separate processes within a single VM.

Japhar

http://www.japhar.org

A portable VM distributed under the LGPL for FreeBSD (x86), NetBSD (x86, arm32), Linux (x86), Solaris (x86, sparc) and Win32. BeOS is not in the list of supported platforms, but there was something about BeOS patches in the News section.

Jupiter

http://www.eecg.toronto.edu/~doylep/jupiter/

A VM for Linux that is part of a research project. Jupiter puts emphasis on modularity and extensibility. Source code is available for download.

Kaffe

http://www.kaffe.org

The GPL'd Kaffe virtual machine and its runtime library are a cleanroom implementation (no dependencies on Sun). There is a very impressive list of supported platforms: Embedded Linux, VxWorks, LynxOS, SMX, ThreadX, Linux (all distributions), DOS, Windows NT 4.0, Windows 98, Windows 2000, Windows CE, Solaris, SunOS, BSDI, FreeBSD, NetBSD, OSF/1, Unixware, HP-UX, NextStep, OpenStep. Supported processors include ix86, Sparc, m68k, StrongARM, MIPS, Alpha, PowerPC and PARisc. Memory footprint is small, the VM can be used for embedded systems. The exact Java version is not specified, for a reference see the Kaffe Datasheet (PDF, 96 KB).

KaffePC is a virtual machine for DOS, based on Kaffe.

There is also a port of Kaffe to AtheOS (no AWT available).

kissme

http://kissme.sourceforge.net

A GPL'd virtual machine, written in C (the JIT part in Java), targetted at Unix operating systems (main OS: Linux). Depends on Classpath as runtime library.

LaTTe

http://latte.snu.ac.kr/

A virtual machine with a just-in-time compiler, available with source code under a "BSD-like license" for Solaris 2.5+ on UltraSPARCs. A class library is not included.

SableVM

http://www.sablevm.org

A GPL'd virtual machine, written in C, that is in an early stage of development. The goal is to create an efficient VM for Linux, using a modified version of Classpath as runtime library. You might also want to look at this related paper from the list of publications of the Sable research group.

teaseme

http://teaseme.sourceforge.net/

A virtual machine based on kissme.

Java products for embedded systems

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.

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:

  • 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

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.

Jbed

http://www.jbed.com/

The Jbed RTOS Package is a real-time capable Java Virtual Machine for embedded systems and Internet appliances. An entire application, including the device drivers, can be written in Java. Memory footprint starts at 10 KB. Runs on PowerPC 8xx, Motorola 68k family processors, ARM7TDMI, StrongArm and Coldfire. Intel and MIPS support are planned. Commercial. Demo available for download.

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.

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.

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.

Microware

http://www.microware.com/Products/Software/java.html

A PersonalJava environment (including a virtual machine) for the OS-9 real-time operating system.

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.newmonics.com/perc/info.shtml

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.

Just-in-time compilers

Just-in-time (JIT) compilers convert part of the bytecode (as found in .class files) of a Java application to native code in order to improve execution speed. As a disadvantage, they often require more memory than simple interpreting virtual machines because both bytecode and the corresponding native code are in memory at the same time. JIT compilers are typically bundled with or a part of a virtual machine and do the conversion to native code at runtime, on demand.

The well-known Sun VMs for Windows, Linux x86 and Solaris come with the Hotspot JIT compiler. It is used by default, in order to turn it off, use the -Xint switch with the java application.

LaTTe comes with a built-in JIT compiler

Cacao

http://www.complang.tuwien.ac.at/java/cacao/

JIT compiler for the Alpha platform.

OpenJIT

http://www.openjit.org/

A project for a JIT compiler, free for non-commercial use. Works with Solaris (Sparc), Linux (x86) and FreeBSD (x86). Source code is available.

shuJIT

http://www.shudo.net/jit/

A just-in-time compiler for VMs on the Intel x86 platform, works with Linux and FreeBSD. No word about the distribution model, seems to be free.

©2002-2008Java-Virtual-Machine.net