jikes(1)

NAME
jikes - java source to bytecode compiler

SYNOPSIS
jikes [-options] [+options] [@files]
      file.java... Options, @files, and filenames may be intermixed. Individual options should not be repeated, unless noted below.

DESCRIPTION
Jikes translates Java(TM) source files to bytecode. Features include strict adherence to the language specification, automatic makefile generation and incremental compilation. 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 usually 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 typically 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 compiled.

-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" directories. 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 chaining was introduced, so a failed class literal can chain the NoClassDefFoundError to its original ClassNotFoundException, rather than the old behavior 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 whatever -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 recognized flags are modifier-order, which warns about the recommended ordering of multiple modifiers; and redundant-modifiers, which warns about explicitly mentioning an implied modifier. Both are turned on by default in pedantic compilation mode. Multiple +P options are cumulative in effect. For example, to get all pedantic warnings except modifier ordering, use +P +Pno-modifier-order. To get just warnings about redundant modifiers, without other pedantic warnings, use +Predundant-modifiers.

+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 cautions.

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 special).

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 coexist, preference will be given to JIKESPATH. A value specified on the command line will be always be given preference over the value of any environment variable. All the directories and files specified in these options or environment 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/opensource/jikes/ for news of recent developments, to download new versions, to report bugs, or to learn how to participate in the development process.

COPYRIGHT
Copyright © 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 projects. 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.