Home : Course Map : Chapter 1 : Java : Supplements :
Alternative Virtual Machines
Course Map
Chapter 1
What is Java?
Java 5.0

Java Process
Getting Started
Simple Applet
Simple Application


Making WebPages
Java 5.0 Features
Advanced JVMs
Alt. Compilers
Alt. JVMs
Java Deployment

     About JavaTech
     Codes List
     Topic Index
     Course Guide
     What's New

Just as bytecode can be generated by programs other than Sun's Java language, other types of virtual machines can execute that bytecode.

A number of groups and companies have taken the JVM Specifications and created their own clean-room JVMs. This is allowed under the Sun Microsystems guidelines for using the Java trademark in labeling the program.

Clean-room indicates that the program was developed completely independently of Sun code.

As long as the JVM follows the specifications, even if it carries them out in totally different manner than the Sun JVM, it is still quite legal. This actually allows for a wide range of implementations because in a number of areas the specifications are not exact.

For example, there is considerably leeway with regard to threads. A JVM could create thread processes purely within the JVM, or it might instead use native processes within the host operating system, or even different processors on a multiprocessor system.

Also, note that there are now separate specifications for micro and embedded platforms and for real-time systems. For some platforms, only a non-Sun JVM may be available.

Java Virtual Machines implemented in hardware are also now available. In this case, Java bytecode is the machine code of the hardware JVM processor. (See Chapter 23.)

Below is a sampling of alternate JVMs. See the JVM list sites for more examples:

  • kissme - a implementation in C for UNIX and especially GNU/Linux. Features include:
    • Uses native Operating System threads
    • Mark and Sweep garbage collector
    • "Supports an extension to the JVM allowing persistent java, which means that the JVM allows in-memory data structures to automatically persist to permanent storage"
  • Japhar - clean room, open source implementation.
  • LaTTe : An "Open-Source Java Virtual Machine and Just-in-Time Compiler"
  • SableVM - "portable bytecode interpreter written in C, and implementing the Java virtual machine specification, second edition. Its goals are to be reasonably small, fast, and efficient, as well as providing a well-designed and robust platform for conducting research"
  • Alternative Java Implementations - David K. Friedman and David A. Wheeler - list of other JVMs.
  • JVM Implementations - Wikipedia

Latest update: Dec.10.2003

Java in Science
    & Engineering
RealWorld Examples

Java in Physics
Sim. in Experiments
  Demo 1: Event
  Demo 2: Continuous
  Demo 3: Static

Learn by Coding

  Part I Part II Part III
Java Core 1  2  3  4  5  6  7  8  9  10  11  12 13 14 15 16 17
18 19 20
22 23 24

1  2  3  4  5  6  7  8  9  10  11  12

Tech 1  2  3  4  5  6  7  8  9  10  11  12
Physics 1  2  3  4  5  6  7  8  9  10  11  12

Java is a trademark of Sun Microsystems, Inc.