Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

The Kaffe Virtual Machine

Octocat-spinner-32 FAQ removed old kaffe awt implementations March 09, 2008
Octocat-spinner-32 compat-include Updated FSFs address all over the place July 04, 2005
Octocat-spinner-32 config Tile64 support added August 22, 2011
Octocat-spinner-32 developers removed version checking logic from autogen.sh January 20, 2008
Octocat-spinner-32 docs Updated FSFs address all over the place July 04, 2005
Octocat-spinner-32 include Use autoreconf to bring 'configure' up-to-date June 20, 2011
Octocat-spinner-32 kaffe Use autoreconf to bring 'configure' up-to-date June 20, 2011
Octocat-spinner-32 libraries Fix compilation errors in 'java.lang.reflect' classes July 02, 2011
Octocat-spinner-32 m4 Use autoreconf to bring 'configure' up-to-date June 20, 2011
Octocat-spinner-32 po removed binreloc support January 06, 2008
Octocat-spinner-32 replace Use autoreconf to bring 'configure' up-to-date June 20, 2011
Octocat-spinner-32 scripts Tile64 support added August 22, 2011
Octocat-spinner-32 test Use autoreconf to bring 'configure' up-to-date June 20, 2011
Octocat-spinner-32 .cvsignore ignore cscope database December 31, 2007
Octocat-spinner-32 .gitignore Fix .gitignore not to show generated files June 20, 2011
Octocat-spinner-32 ABOUT-NLS Updated to gettext 0.14.1 February 01, 2004
Octocat-spinner-32 AUTHORS 2005-10-25 Jim Huang <jserv@kaffe.org> October 25, 2005
Octocat-spinner-32 ChangeLog Partial work for arm/jit3/NetBSD. (At least HelloWorldApp works) August 29, 2008
Octocat-spinner-32 ChangeLog.1 2003-08-10 Jim Pick <jim@kaffe.org> August 11, 2003
Octocat-spinner-32 ChangeLog.10 Split the file up; it was getting rather large, and slow to checkin. December 10, 2004
Octocat-spinner-32 ChangeLog.11 Split the file up; it was getting rather large, and slow to checkin. December 10, 2004
Octocat-spinner-32 ChangeLog.12 Split the file up; it was getting rather large, and slow to checkin. December 10, 2004
Octocat-spinner-32 ChangeLog.13 Split the file up; it was getting rather large, and slow to checkin. December 10, 2004
Octocat-spinner-32 ChangeLog.14 Split the file up; it was getting rather large, and slow to checkin. December 10, 2004
Octocat-spinner-32 ChangeLog.15 Split ChangeLog again January 01, 2005
Octocat-spinner-32 ChangeLog.16 Rotated ChangeLog March 20, 2005
Octocat-spinner-32 ChangeLog.17 Rotated ChangeLog & enabled debugging on jit/powerpc. September 03, 2005
Octocat-spinner-32 ChangeLog.18 shuffled ChangeLogs March 28, 2006
Octocat-spinner-32 ChangeLog.19 2007-09-30 Dalibor Topic <robilad@kaffe.org> September 30, 2007
Octocat-spinner-32 ChangeLog.2 rotated changelogs April 12, 1999
Octocat-spinner-32 ChangeLog.20 moved 1.1.9 changelog over to ChangeLog.20 February 27, 2008
Octocat-spinner-32 ChangeLog.3 * Updated changelogs. October 18, 1999
Octocat-spinner-32 ChangeLog.4 2002-11-23 Dalibor Topic <robilad@yahoo.com> November 23, 2002
Octocat-spinner-32 ChangeLog.5 2003-06-12 Dalibor Topic <robilad@yahoo.com> June 11, 2003
Octocat-spinner-32 ChangeLog.6 Moved old ChangeLog info into its own file December 08, 2003
Octocat-spinner-32 ChangeLog.7 Moved old ChangeLog info into its own file December 08, 2003
Octocat-spinner-32 ChangeLog.8 Moved old ChangeLog info into its own file December 08, 2003
Octocat-spinner-32 ChangeLog.9 Shuffled changelogs March 24, 2004
Octocat-spinner-32 INSTALL Some misc wording tweaks, etc. April 09, 1999
Octocat-spinner-32 Makefile.am removed old kaffe awt implementations March 09, 2008
Octocat-spinner-32 Makefile.in Use autoreconf to bring 'configure' up-to-date June 20, 2011
Octocat-spinner-32 README Minor grammar correction in README. May 31, 2011
Octocat-spinner-32 RELEASE-NOTES updated version to 1.1.10-pre February 27, 2008
Octocat-spinner-32 THIRDPARTY updated THIRDPARTY licensing information February 16, 2008
Octocat-spinner-32 TODO documented old AWT purge March 09, 2008
Octocat-spinner-32 WHATSNEW documented old AWT purge March 09, 2008
Octocat-spinner-32 aclocal.m4 Use autoreconf to bring 'configure' up-to-date June 20, 2011
Octocat-spinner-32 autobuild.sh added configuration files for test-autobuild September 18, 2006
Octocat-spinner-32 configure Fix ltdl.h auto-detection June 20, 2011
Octocat-spinner-32 configure.ac Fix ltdl.h auto-detection June 20, 2011
Octocat-spinner-32 license-lesser.terms Updated FSFs address all over the place July 04, 2005
Octocat-spinner-32 license.terms Updated FSFs address all over the place July 04, 2005
Octocat-spinner-32 project.properties.in Add new docbook docs. December 10, 2003
Octocat-spinner-32 project.xml.in Add new docbook docs. December 10, 2003
README
 
			 ===================

			   Kaffe 1.1.10-pre

			 ===================

This is "Kaffe", a virtual machine which allows the execution of 
Java code.

Why use Kaffe?
--------------

Because Kaffe is distributed under the terms of the GNU Public License
which means the source code is free for you to download, modify and
use.

What systems does Kaffe support?
-------------------------------

Most of the porting issues of Kaffe are in the virtual machine itself
(after all, the rest is in Java and is therefore inherently portable)
so we may not support all the platforms you might want, but we support
an amazing number and we'll add more as we can.  Take a look at the list
below to see if Kaffe will run on your system ('J' means 'just-in-time'
while 'I' means 'interpreter'):

  ========================================================================
  uProc     | Mode |    Systems
  ========================================================================
  ========================================================================
  Alpha     | J+I  |    Linux		OSF/1		NetBSD 1.x
            |      |    FreeBSD
  ------------------------------------------------------------------------
  ARM       | J+I  |    Linux           NetBSD 1.x	RISC OS
  ------------------------------------------------------------------------
  Blackfin  | J+I  |    uclinux
  ------------------------------------------------------------------------
  ia64	    | I	   |	Linux 2.x	HPUX 11.x       FreeBSD
  ------------------------------------------------------------------------
  i386      | J+I  |    Linux 2.x       FreeBSD 2.x +   NetBSD 1.x
            |      |    Solaris 2.x     BSDI 2.x        Unixware
            |      |    SCO 3.2v5       NeXTStep 3.x    Windows '95/98/NT
            |      |    DG/UX		OpenBSD 2.x	OpenStep 4.x
            |      |    QNX 4.x		NCR MP-RAS 3.x  OSKit 0.96 +
            |      |    GNU Hurd	BeOS		Cygwin
	    |      |    Darwin          DragonFly BSD   Interix
  ------------------------------------------------------------------------
  MIPS      | J+I  |    Linux           IRIX 5 & 6	NetBSD 1.x
	    |	   |	Ultrix 4.2      PS2Linux
  ------------------------------------------------------------------------
  M68K      | J+I  |    AmigaOS         NeXTStep 3.x    NetBSD 1.x
            |      |    SunOS 4.x	Linux		AUX
            |      |    OpenBSD 2.x
  ------------------------------------------------------------------------
  PARISC    | I    |    HPUX 10.x       Linux 2.x
  ------------------------------------------------------------------------
  PowerPC   | I    |    Linux 2.x       MachTen 4.0.3	AIX
	    |	   |	Darwin		NetBSD1.x       Mac OS X
            |      |    OpenBSD
  ------------------------------------------------------------------------
  s390	    | I	   |	Linux 2.x
  ------------------------------------------------------------------------
  Sparc     | J+I  |    Linux 2.x       SunOS 4.x       NetBSD 1.x
            |      |    NeXTStep 3.x    Solaris 2.x	Fujitsu UXP/DS
            |      |    BSDI 3.x	OpenBSD 2.x
  ------------------------------------------------------------------------
  SuperH    | I    |    Linux 2.x
  ------------------------------------------------------------------------
  x86-64    | I    |    Linux 2.x	FreeBSD 2.x +   OpenBSD 4.x
  ========================================================================

Who can use Kaffe?
------------------

Kaffe is distributed under the GPL (GNU Public License).  Please
read the license to make sure it's okay to use it in your circumstances.

Where do I find new copies of Kaffe?
------------------------------------

Kaffe is available from various sites.  The primary site is:

        https://github.com/kaffe/kaffe

What about a web site?
----------------------

News about the "Open Source" Kaffe distribution can always be found at:

	http://www.kaffe.org/

And mailing lists?
------------------

There is a Google group available at:

	http://groups.google.com/group/kaffevm

Historic mailing list archives for the old kaffe mailing lists are here:

	http://www.kaffe.org/pipermail/kaffe-announce/
	http://www.kaffe.org/pipermail/kaffe/

How do I report bugs and problems?
----------------------------------

You can use GitHub issues here.

	https://github.com/kaffe/kaffe/issues

Note that the project is currently dormant, and not under active development. So
you might want to raise the issue in the Google Group as well in order to raise
awareness of your problem. New developers and pull requests are welcome!

What software do I need to install Kaffe?
-----------------------------------------

See FAQ/FAQ.requiredlibraries.

You'll also need a compiler for the Java programming language, like ecj, 
javac or jikes. 

How do I compile and install kaffe?
-----------------------------------

For UNIX it couldn't be simpler:

  $ ./configure
  $ make
  $ make install

You can specify which compiler for the Java programming language to 
use for the build by passing it in the JAVAC variable to the configure 
script, as in

$ ./configure JAVAC=/usr/bin/ecj

Before compiling for your platform, you might want to check the
RELEASE-NOTES file to see if it has been tested with this release, and
whether or not there are any problems that other people have seen.

The virtual machine comes complete with the interpreter, stub generator,
and supporting native libraries.  Compilation is controlled using the
GNU autoconf program.  To generate the necessary makefiles
type "./configure" in this directory.  This will identify your system
and configure the software appropriately.  If JIT mode is supported on your
system it will be selected automatically, otherwise it defaults to
interpreting mode.  Compilation should then be a simple matter of
typing "make" in this directory.

Note: You will need GNU make ("gmake") in order to build Kaffe.

By default, the system will install into the /usr/local/kaffe
hierarchy in a layout similar to how Sun's JDK lays out the files,
with SDK tools (eg.  the java compiler) at the top level, and runtime
files only in the "jre" subdirectory).  The install location can be
changed using the --prefix option to configure.  To install the
binaries type "make install".

Kaffe can be reconfigured in a number of ways:

1. Use --program-prefix, --program-suffix or --program-transform-name
   configure option to prepend or append a string, or edit (with a sed
   command) all command names.
2. Use the --prefix configure option to place the kaffe installation tree
   somewhere other than /usr/local/kaffe.

For Windows 9x/NT, you can compile it using Red Hat's GNU tools for
Windows from:

	http://www.cygwin.com/

Compilation and installation is as per the UNIX system.

Running Kaffe
=============

No environment configuration is necessary to run kaffe.  However, you may 
want to include the directory in which kaffe is installed in your path.  
Typically, this would be /usr/local/kaffe/bin:

        PATH=$PATH:/usr/local/kaffe/bin

All necessary setup is taken care of by `kaffe' (note the lower case),
which is actually a driver shell script for the `kaffe-bin'
executable.

Note that you don't have to setup the CLASSPATH - if you do then that's
fine, but if you don't kaffe will construct a classpath that has the
current directory plus the Jar and Zip files it needs to run.  For the 
details of how the CLASSPATH is set up, refer to kaffe/scripts/kaffe.in.

If you want to test the kaffe executable you built, type "make check".
This will run a suite of tests to check that your Kaffe executable is
in fact working.

The Kaffe Team
<kaffevm@googlegroups.com>

----
* Kaffe.org is a an independent, free software community project, not
  directly affiliated with Transvirtual Technologies, Inc.
* The Kaffe virtual machine is free software, licensed under the terms
  of the GNU Public License.  It is a separate software product from
  Transvirtual's proprietary KaffePro virtual machine.
* Kaffe is a Trademark of Transvirtual Technologies, Inc.
* Java is a Trademark of Sun Microsystems, Inc.

Something went wrong with that request. Please try again.