jikes
Section: User Commands (1)
Index
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 -g:source,lines,vars
.
- -g:none|{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.
- +K
name=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 © 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.
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- OPTIONS
-
- FILES
-
- SEE ALSO
-
- COPYRIGHT
-
- NOTES
-
This document was created by man2html, using the standard unix manual
pages, then hacked on by cabbey to make the output standalone for
windows users.