DragonFly On-Line Manual Pages
jikes(1) DragonFly General Commands Manual 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. This defaults to an empty path.
-classpath path
-cp path
--classpath path
Use path for CLASSPATH. This path is searched for both user
source and compiled class files. This defaults to the current
directory.
-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. This defaults to the current directory.
-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 that binary distributions for some platforms
(such as Windows) do NOT include support for the encoding
option, as there is not an adequate transcoding library
available on all platforms by default. You can tell if a binary
has encoding support or not by running jikes --help and looking
for the --encoding option: if it is not listed, then this binary
does NOT include support for encoding. This defaults to a
platform-dependent encoding (such as ASCII).
-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.
This defaults to an empty path.
-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. This defaults to line and source
information, but not vars.
-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. For greater control over warnings
and cautions, see the +Z option.
-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 treat the assert keyword as a normal identifier, you
can use -source 1.3. Setting a lower target results in backward
compatibility compilation of old source files. Valid releases
are 1.3 (Java Language Specification, 2nd edition), and 1.4
(addition of the assert statement, JSR 41). Plans are underway
to eventually support 1.5 (addition of generics: JSR 14;
autoboxing, enhanced for-loop, static import, enums, and
varargs: JSR 201; metadata: JSR 175; and updated .class file
format: JSR 202; ultimately the Java Language Specification, 3rd
edition). If not specified, this defaults to the valid value
closest to the one specified or defaulted for -target (typically
1.4).
-sourcepath path
--sourcepath path
Use path for specifying user "source only" directories. Class
files in this path are ignored unless listed in other paths.
This defaults to the empty path.
-target release
--target release
Specify which Java SDK release the bytecode should target. For
example, exception chaining was introduced in the 1.4 release,
so a failed class literal can chain the NoClassDefFoundError to
its original ClassNotFoundException; while the behavior in the
1.3 release simply discards the original exception. To get the
old behavior, you can use -target 1.3. Setting a lower target
results in forward compatibility to older virtual machines, and
some source constructs will be compiled to less efficient
workarounds in order to avoid known virtual machine bugs or
deficiencies. However, a lower target may occaisionally produce
incorrect semantic behavior. Furthermore, some language
features require virtual machine support, where there are no
known workarounds in earlier releases: the assert statement
requires 1.4 (unless you also use -noassert), and the planned
addition of typesafe enumerations will require 1.5. The planned
addition of type parameterization (also known as generics) will
work with 1.1. Valid releases are 1.1, 1.2, 1.3, 1.4, and
1.4.2; plans are underway to support 1.5. If not specified,
this defaults to the value specified for -source, and if that is
not specified, this defaults to 1.4.2.
-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.
-Werror
Equivalent to +Z2, provided for javac compatibility.
-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.
-Xswitchcheck
Synonym to +Pswitchcheck. Warns about fallthrough switch cases.
++
--incremental
Compile in incremental mode. In this mode, jikes stays
resident, and every keypress of Enter will trigger a
recompilation of every source file rendered out-of-date by file
modifications since the last compilation phase. To exit this
mode, type q then Enter.
+a
--noassert
Do not emit assert statements. This option is not recommended
for disabling asserts, because asserts are compiled to have
minimal overhead when disabled through the virtual machine.
Rather, it is intended for reducing classfile size, and to allow
the use of -target 1.3 or earlier virtual machine targets that
do not support the assert statement.
+B
--nobytecode
Do not invoke bytecode generator. Perform semantic checks only.
+D
--dump-errors
Report errors immediately in emacs-form without buffering.
+DR=filename
Write report of dependencies to specified file.
+E
--emacs
List errors in emacs-form.
+F
--full-dependence
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
--makefile
Generate makefile dependencies.
+OLDCSO
Select to use same classpath search order as in older versions
of Jikes (for compatibility).
+P[group-name]
Pedantic compilation - issues lots of warnings. With no group
name, this turns on a default set of pedantic warnings which
does not correspond to any of the named groups of warnings.
Specifying a group name turns on or off that particular named
group of warnings, depending on the presence of the no- prefix.
Some named groups are enabled by default. These are marked as
such in the output of jikes --help. At present, the recognized
group names are effective-java, which warns about the anti-
patterns mentioned in Joshua Bloch's book "Effective Java";
modifier-order, which warns about the recommended ordering of
multiple modifiers; redundant-modifiers, which warns about
explicitly mentioning an implied modifier; serial, which warns
about serializable classes without serialVersionUID fields;
shadow, which warns about shadowing and hiding of fields;
switchcheck, which warns about fallthrough between cases of
switch statements; naming-convention, which warns about names
that violate Java naming conventions; unused-type-imports, which
warns about unused single-type import statements; and unused-
package-imports, which warns about unused package import
statements. In addition, the pseudo-group all stands for all
named groups of warnings, but not the anonymous group controlled
by +P. Multiple +P options are cumulative in effect. For
example, to get all pedantic warnings except modifier ordering,
use +P +Pall +Pno-modifier-order. To get just warnings about
redundant modifiers, without other pedantic warnings, use
+Predundant-modifiers.
--pedantic
Synonym for +P, but does not accept flags.
+T=n
--tab=n
Set value of tab to n spaces. If not specified, the default is
8.
+U
--unzip-dependence
Do full dependence check including Zip and Jar files.
+Z0 Do not issue warning messages.
+Z1 Treat cautions as errors.
+Z2 Treat both warnings and cautions as errors.
+Z
--zero-cautions
Equivalent to +Z1 for compatibility with earlier versions of
Jikes.
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 the platform path format (usually 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 (C) 1996-2003, 2004 IBM 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.
jikes(1)