jikes(1) jikes(1)
NAME
jikes - java source to bytecode compiler
SYNOPSIS
jikes [-options] [+options] [@files]
file.java...
Options, @files, and filenames may be intermixed. Individ-
ual options should not be repeated, unless noted below.
DESCRIPTION
Jikes translates Java(TM) source files to bytecode. Fea-
tures include strict adherence to the language specifica-
tion, automatic makefile generation and incremental compi-
lation. It is maintained by the Jikes Project.
At this time, jikes only recognizes the full name of
options; you cannot abbreviate or group them. You can give
different argument types in any order. Options are global,
so they affect compilation of files listed earlier on the
command line. Duplicated options override the previous
one, unless otherwise listed. If an option is listed in
the form +T=n, it can also be specified as +T n or even
+Tn.
OPTIONS
Jikes may be invoked with the following command-line
options:
-bootclasspath path
--bootclasspath path
Use path for the bootclasspath. This path is
searched first for library class files, and is usu-
ally set to java/lib/classes.zip or
java/jre/lib/rt.jar.
-classpath path
-cp path
--classpath path
Use path for CLASSPATH. This path is searched for
both user source and compiled class files.
-d directory
--target-directory directory
Write class files in the specified directory. Note
that this directory is NOT in your classpath unless
you list it there as well.
-debug No effect (recognized for compatibility).
-depend
--depend
-Xdepend
Recompile all used classes.
-deprecation
--deprecation
Report uses of deprecated features.
-encoding encoding
--encoding encoding
Use specified encoding to read source files. This
is not available in some builds, because it
requires a working iconv or ICU encoder. Note: in
particular that the Windows binary provided for
download does NOT include support for the encoding
option as there is not a transcoding library on
windows by default. You can tell if a binary has
encoding support or not, but running jikes --help
and looking for the --encoding option: if it is not
listed, then this binary does NOT include support
for encoding.
-extdirs path
--extdirs path
Use path for extensions directories. This is typi-
cally set to grab jar and zip extension files
located in java/jre/lib/ext.
-g Equivalent to -gsource,lines,vars.
-gnone|{source,lines,vars}
Specify which of three classfile debug options
should be enabled. If this is not specified, the
default is source,lines. source stores the filename
of the source file in the class file, lines adds
line number tracking to tie bytecodes to their
location in the source file, and vars adds a table
in the class file which stores the name of local
variables and parameters, as well as their scope.
-help
--help
-h
-? Prints a helpful summary of options, then exit.
Overrides all other options, and nothing is com-
piled.
-J... No effect, since jikes is native code, and does not
need a Virtual Machine (ignored for compatibility).
-nowarn
--nowarn
-q Do not issue warning messages.
-nowrite
--nowrite
Do not write any class files, but list which ones
would be written if used with -verbose.
-O
--optimize
Optimize the bytecode. Technically, this means
jikes should inline private and final methods where
appropriate, but currently it does nothing.
-source release
--source release
Specify which Java SDK release the source syntax
obeys. For example, to compile code with the assert
keyword, you would specify -source 1.4. Recognized
releases are 1.1 through 1.4. If unspecified, this
defaults to 1.3.
-sourcepath path
--sourcepath path
Use path for specifying user "source only" directo-
ries. Class files in this path are ignored unless
listed in other paths.
-target release
--target release
Specify which Java SDK release the bytecode should
target. For example, in Java 1.4, exception chain-
ing was introduced, so a failed class literal can
chain the NoClassDefFoundError to its original
ClassNotFoundException, rather than the old behav-
ior in Java 1.3 where the original exception is
just discarded. You would get the new behavior by
specifying -target 1.4. Recognized releases are 1.1
through 1.4. If unspecified, this defaults to what-
ever -source level is in force.
-verbose
--verbose
-v List files read and written. Also useful with
-nowrite for a dry run to track dependencies.
-version
--version
-V Print a version message, and contact information,
then exit. Overrides all other options except
--help, and nothing is compiled.
-Xstdout
Write error messages to standard output, not
stderr. At the moment, this is incompatible with
javac, which takes an argument as the name of the
file where it will direct compiler message output.
++ Compile in incremental mode.
+B Do not invoke bytecode generator.
+D Report errors immediately in emacs-form without
buffering.
+DR=filename
Write report of dependencies to specified file.
+E List errors in emacs-form.
+F Do full dependence check except for Zip and Jar
files.
+Kname=TypeKeyWord
Map name to type keyword. Multiple options are
needed to change more than one type keyword.
+M Generate makefile dependencies.
+OLDCSO
Select to use same classpath search order as in
older versions of Jikes (for compatibility).
+P[flags]
Pedantic compilation - issues lots of warnings.
This option may be listed multiple times, with
cumulative effect. With no flags, this turns on the
default set of pedantic warnings. Specifying a flag
will then turn on or off a particular warning,
depending on the presence of the no- prefix. At
present, the only recognized flag is modifier-
order, which warns about the recommended ordering
of multiple modifiers, and is turned on by default
in pedantic compilation mode. Multiple +P options
are cumulative in effect. Thus, to get all pedantic
warnings except modifier ordering, use +P +Pno-mod-
ifier-order.
+T=In Set value of tab to n spaces. If not specified, the
default is 8.
+U Do full dependence check including Zip and Jar
files.
+Z Treat cautions as errors. Unfortunately, at the
moment, this will not promote warnings, just cau-
tions.
An argument may have the form @file, which names a file
holding additional command-line arguments. Each line in
that file is treated as an argument, except that lines
beginning with @ are not expanded recursively. Lines may
optionally be quoted using either single or double quotes.
There are no escape characters ('\' is not treated as spe-
cial).
FILES
Jikes has several options related to classpath searching.
The -bootclasspath, -extdirs, and -sourcepath options are
the same as in javac. In addition to being specified on
the command line, the environment variables BOOTCLASSPATH,
EXTDIRS, and SOURCEPATH may also be used to specify values
for these options, respectively. Jikes also has the
-classpath option as in javac, with the corresponding
environment variable CLASSPATH. The classpath may also be
specified in the environment variable JIKESPATH, although
this use is discouraged. If JIKESPATH and CLASSPATH coex-
ist, preference will be given to JIKESPATH. A value spec-
ified on the command line will be always be given prefer-
ence over the value of any environment variable. All the
directories and files specified in these options or envi-
ronment variables must be in a colon-separated list, e.g.,
".:$HOME/java/jre/lib/rt.jar".
SEE ALSO
Jikes Project homepage http://ibm.com/developerworks/open-
source/jikes/ for news of recent developments, to download
new versions, to report bugs, or to learn how to partici-
pate in the development process.
COPYRIGHT
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
International Business Machines Corporation and others.
All Rights Reserved.
Jikes is licensed under the IBM Public License, included
in the file license.htm distributed with the program, and
also available at the Jikes Project URL. Portions of
Jikes are derived from prior, freely distributable pro-
jects. For more details on this code, see the comments in
src/double.h, src/platform.h, and src/unzip.h.
NOTES
Java is a registered trademark of Sun Microsystems, Inc.
jikes(1)