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

README.md

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.

Features

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

Installation

Prerequisites

Fedora

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

Ubuntu

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

Archlinux

$ 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:

Fedora

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

Ubuntu

$ 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://git.savannah.gnu.org/classpath.git

You can then compile GNU Classpath:

$ ./autogen.sh
$ ./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.

Usage

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.

License

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.