Skip to content
Jato, an open source implementation of the JVM
C Objective-C Java Shell C++ Assembly Other
Find file
Latest commit bb1c7d4 @penberg penberg Merge pull request #39 from abak/master
Fix README and improve documentation
Failed to load latest commit information.
Documentation adds options documentation
arch/x86 Relicense Jato under the 2-clause BSD license
boehmgc boehmgc: Pass -marm to make boehmgc build on thumb2 ARM systems.
external Bump up GNU Classpath version
include Relicense Jato under the 2-clause BSD license
jit Relicense Jato under the 2-clause BSD license
lib Relicense Jato under the 2-clause BSD license
runtime Relicense Jato under the 2-clause BSD license
sys Relicense Jato under the 2-clause BSD license
test test: Fix LLVM libraries to include ncurses
tools tests: Remove ReferenceTest
vm Relicense Jato under the 2-clause BSD license
.gitignore Fix .gitignore for asm-offsets.h
.gitmodules Fix submodule URL
.mailmap Fix differently spelled name
.travis.yml Add LLVM dependency to Travis CI environment
AUTHORS AUTHORS: added an entry.
BUGS runtime: Implement VMClass#getDeclaredAnnotations
COPYING Add COPYING file and update GPLv2 URL in LICENSE
LICENSE Relicense Jato under the 2-clause BSD license
Makefile Makefile: Add ncurses to LLVM libraries fix readme build instruction regarding GNU classpath
TODO Update todo
jato.c Relicense Jato under the 2-clause BSD license

Jato VM

Build Status

Jato is an implementation of the Java virtual machine. It includes a VM and a JIT compiler for the x86 machine architecture and supports the JNI API. Jato uses Boehm GC as its garbage collector and relies on GNU Classpath to provide essential Java APIs.


  • JIT-only execution on x86 architecture
  • Uses GNU Classpath for essential classes
  • Boehm garbage collector
  • Runs on Linux




$ sudo yum install ecj libffi-devel binutils-devel glib2-devel bison llvm-devel llvm-static


$ sudo apt-get install ecj libffi-dev binutils-dev libiberty-dev libglib2.0-dev bison llvm-dev


$ pacman -S eclipse-ecj classpath libffi

GNU Classpath

GNU Classpath needs to be built and installed from sources.

First install dependencies that are required to build GNU Classpath:


$ sudo yum install java-1.7.0-openjdk antlr GConf2-devel gtk2-devel gettext-devel texinfo


$ sudo apt-get install openjdk-6-jdk antlr libgconf2-dev libgtk2.0-dev ecj fastjar pccts

Then clone the sources from the git repository (the release 0.99 appears to be broken)

git clone git://

You can then compile GNU Classpath:

$ ./
$ ./configure --disable-Werror --disable-plugin
$ make

and install it to /usr/local:

$ sudo make install

Build and Install

To compile the VM and run all the tests:

$ make check

All tests should pass.

You can now install Jato with:

$ make install

The command installs an executable jato to $HOME/bin.


Jato uses the same command line options as java.

To run a class:

$ jato <class name>

To specify classpath, use:

$ jato -cp <jar files or directories> <class name>

You can also execute a Jar file with:

$ jato -jar <jar file>

Jato also supports variety of command line options for debugging and tracing purposes. See the file Documentation/options.txt for details.


Copyright © 2005-2013 Pekka Enberg and contributors

Jato is distributed under the 2-clause BSD license.

Something went wrong with that request. Please try again.