Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
jikes(1)		     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 or-
     der. 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  li-
	    brary  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 direc-
	    tory 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  de-
	    faults 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 de-
	    faults 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  compatibil-
	    ity  compilation  of old source files.  Valid releases are 1.3 (Java
	    Language Specification, 2nd edition), and 1.4 (addition of	the  as-
	    sert  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  ex-
	    ample,  exception  chaining  was introduced in the 1.4 release, so a
	    failed class literal can chain the NoClassDefFoundError to its orig-
	    inal 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 addi-
	    tion 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 de-
	    faults 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.  Over-
	    rides 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  -tar-
	    get  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 cor-
	    respond  to any of the named groups of warnings.  Specifying a group
	    name turns on or off that particular named group  of  warnings,  de-
	    pending on the presence of the no- prefix. Some named groups are en-
	    abled  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 conven-
	    tions; unused-type-imports, which warns about unused single-type im-
	    port  statements;  and unused-package-imports, which warns about un-
	    used 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-modi-
	    fiers.

     --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 -bootclass-
     path, -extdirs, and -sourcepath options are the same as in javac.	In addi-
     tion 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,  al-
     though  this use is discouraged.  If JIKESPATH and CLASSPATH coexist, pref-
     erence will be given to JIKESPATH.  A value specified on the  command  line
     will  be always be given preference over the value of any environment vari-
     able.  All the directories and files specified in these options or environ-
     ment variables must be in the platform path format (usually  a  colon-sepa-
     rated 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 Re-
     served.

     Jikes is licensed under the IBM Public License, included in  the  file  li-
     cense.htm	distributed  with  the	program, and also available at the Jikes
     Project URL.  Portions of Jikes are derived  from	prior,	freely	distrib-
     utable  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)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=jikes&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help