The Kawa release normally comes as a gzip-compressed tar file named
Two methods are supporting for compiling the Kawa sources;
choose whichever is most convenient for you.
One method uses the traditional GNU
followed by running
make. This works well on Unix-like
systems, such as GNU/Linux.
You can also use this method on Microsoft Windows,
with the help of tools from MinGW
The other method uses the
ant command, a Java-based
build system released by Apache’s Jakarta project. This uses
build.xml file in place of
works on non-Unix systems such as Microsoft Windows. However,
ant method does not support all
the features of the
(See below for some notes for building on Microsoft Windows.)
In your build directory do:
tar xzf kawa-2.1.tar.gz cd kawa-2.1
Then you must configure the sources. This you can do the same way you configure most other GNU software. Normally you can just run the configure script with no arguments:
configure script takes a number of options.
If you have installed Kawa before, make sure your
does not include old versions of Kawa, or other classes that may
conflict with the new ones.
Then you need to compile all the .java source files. Just run make:
This assumes that ‘
java’ and ‘
javac’ are the java interpreter
and compiler, respectively.
It has been reported that parallel make doesn’t work,
so don’t use the
-j2 or above options.
You can now test the system by running Kawa in place:
or you can run the test suite:
or you can install the compiled files:
This will install your classes into
$PREFIX/share/java (and its
$PREFIX is the directory you specified
to configure with the
--prefix option, or
/usr/local if you
did not specify a
To use the installed files, you need to set
$PREFIX/share/java/kawa.jar is in the path:
CLASSPATH=$PREFIX/share/java/kawa.jar export CLASSPATH
This is done automatically if you use the ‘
configure script takes a number of options.
--help switch gives you a list of options.
The following are some of the more common or important ones.
make install will install the compiled
kawa command into
and so on in
--prefix option causes the files to be installed
For example to install the
and otherwise use
As distributed, the Kawa source code requires Java 7.
If you only have Java 6 or Java 5, use the
Kawa no longer supports older verisons of Java (JDK 1.4 or older).
It might be possible to use a tool
on the Kawa
.jar to fix up Java 5 dependencies.
Contact the Kawa author if you want to be a tester for this.
If you have the GNU ‘
readline’ library installed, you might try
adding the ‘
--enable-kawa-frontend’ flag. This will build the
kawa’ front-end program, which provides input-line editing
and an input history. You can get ‘
readline’ from archives
of GNU programs, including ftp://www.gnu.org/.
If so, you may need to specify to
make where to find
readline include files (with
and the library (with
For example on OS/X you need to do:
make READLINE_INCLUDE_PATH=-I/usr/local/unix/readline/include \ READLINE_LIB_PATH=-L/usr/local/unix/readline/lib
Build support for servlets, which are used in web servers.
This requires the
servlet-api.jar (available various places including
javax.servlet.Servlet and related classes.
If this class isn’t in your classpath, specify its location
. For example:
Build JEmacs (enable Emacs-like text editor) and support (a subset of) the Emacs Lisp language. JEmacs is a proof of concept - not really usable or maintained.
Set this flag enable the convenience features
The JavaFX classes are included in JDK 8 (but not OpenJDK 8),
and you don’t need to specify
For JDK 7 you need to specify
(the path to
(the value of the
Build for the Android platform. This requires special instructons.
make process assumes Unix-like
tools, which you can get from the MinGW project.
Download the MingGW Installation Manager, and use it to install
msys-groff avoids a minor problem
building the documentation.)
C:\MinGW\msys\1.0\msys.bat script creates a command window
bash shell and the
PATH set up as needed.
Alternatively, you can use the standard Windows command prompt
if you set your
PATH as described in here.
The free Cygwin environment can be used for building Kawa: The Kawa configure script recognizes Cygwin, and modifies the classpath to use Windows-style path separators.
Beyond the base packages, you probably want to install
Cygwin (unlike MinGW) has a current version of
an undiagnosed bug still prevents building
You can work around that problem with
Kawa now includes an Ant buildfile (
Ant is a part of the Apache
If you don’t hava Ant installed,
get it from http://ant.apache.org/bindownload.cgi.
The build is entirely Java based and works equally well on *nix, Windows,
and presumably most any other operating system.
Once Ant has been installed and configured (you may need to set the
ANT_HOME environment variables), you should
be able to change to the directory containing the
and invoke the ‘
ant’ command. With the default settings, a
successful build will result in a
kawa-2.1.jar in the
There are a few Ant "targets" of interest (they can be supplied on the Ant command line):
This is the default, it does
Compiles all the files into
*.class files into the directory
specified by the
Builds a jar into into the directory
specified by the
Run Kawa in a GUI window.
Deletes all files generated by the build, including the jar.
There is not yet a
test target for running the testsuite.
The are various "properties" that control what
ant does. You can
override the on the command line or by editing the
build.properties file in the same directory as
For example the
build.dir directory tells
ant where to
build temporary files, and where to leave the resulting
file. For example, to leave the generated files in the sub-directory
build.properties is provided and it contains
comments explaining many of the options.
Here are a few general properties that help to customize your build:
Path to put the temporary files used for building.
Path to put the resulting jar file.
A suffix to add to the version label for your customized version.
Whether (true/false) the Javac "-g" option is enabled.
Whether (true/false) the Javac "-O" option is enabled.
Here are some Kawa-specific ones (all
See the sample
build.properties for more information on these.
If you change any of the build properties, you will generally want to do
ant clean’ before building again as the build is often not able to
notice that kind of change. In the case of changing a directory path,
you would want to do the
clean before changing the path.
A special note for NetBeans users:
For some reason the build-tools target which compiles an Ant task won’t
compile with the classpath provided by NetBeans.
You may do ‘
ant build-tools’ from the command line outside of NetBeans,
in which case you will not want to use the
clean target as that
will delete the tool files as well.
You can use the
targets as appropriate. Alternatively you can add
ant.jar to the
build-tools classpath by copying or linking it into a
directory in Kawa’s source directory (the one containing the