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)