jikes(1)                   OpenBSD Reference 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)
