NAME
     javac - Java compiler

SYNOPSIS
     javac [ -classpath path ] [ -d directory ] [ -depend ]
          [ -deprecation ] [ -encoding encoding_name ]
          [ -g ] [ -Jjavaoption ] [ -nowarn ] [ -O ]
          [ -verbose ] filename.java ...

     javac_g [ -classpath path ] [ -d directory ] [ -depend ]
          [ -deprecation ] [ -encoding encoding_name ]
          [ -g ] [ -Jjavaoption ] [ -nowarn ] [ -O ]
          [ -verbose ] filename.java ...

DESCRIPTION
     The javac  command  compiles  Java  source  code  into  Java
     bytecodes  that  can then be used by the java(1) interpreter
     to interpret the Java bytecodes.

     Java source code must be contained in files which  filenames
     thatend with the .java extension. The file name must be con-
     structed from the class  name,  as  classname.java,  if  the
     class is public or is referenced from another source file.

     For every class defined in  each  source  file  compiled  by
     javac,  the  compiler  stores  the  resulting bytecodes in a
     class file with a name of the form  classname.class.  Unless
     you  specify  the  -d option, the compiler places each class
     file in the same directory as the corresponding source file.

     When the compiler must refer to your own classes,  you  need
     to  specify  their  location.  Use  the -classpath option or
     CLASSPATH environment variable to do this. The class path is
     a sequence of directories (or zip files) that javac searches
     for classes not already defined in any of the  files  speci-
     fied  directly  as  command arguments. The compiler looks in
     the class path for both a source  file  and  a  class  file,
     recompiling  the source (and regenerating the class file) if
     it is newer.

     Set the property javac.pipe.output to true  to  send  output
     messages  to  System.out.   Set  javac.pipe.output to FALSE,
     that  is,  do  not  set  it,  to  send  output  messages  to
     System.err.

     javac_g is a non-optimized version of javac suitable for use
     with  debuggers  like  jdb(1)  for  debugging  javac itself.
     Using javac_g is not equivalent to using the  command  javac
     -g.

OPTIONS
     -classpath path
                    Specifies the path  javac  uses  to  look  up
                    classes  needed to run javac or being records
                    by other  classes  you  are  compiling.   the
                    default or the CLASSPATH environment variable
                    if it is set. Directories  are  separated  by
                    colons.  It is often useful for the directory
                    containing the source  files  to  be  on  the
                    class  path.  You  should  always include the
                    system classes at the end of  the  path.  For
                    example:

                         example%        javac         -classpath
                         .:/home/avh/classes:/usr/local/java/classes
                         ...


     -d directory   Specifies the root  directory  of  the  class
                    file  hierarchy.  In  other  words,  this  is
                    essentially a destination directory for  your
                    compiled classes.  For example, doing:

                         example%  javac   -d   /home/avh/classes
                         MyProgram.java

                    causes  the  compiled  class  files  for  the
                    classes  in the MyProgram.java source file to
                    be      saved      in      the      directory
                    /home/avh/classes/demos/awt.  If your classes
                    are defined in  the  package  demos/awt,  the
                    class  files would be placed in the directory
                    /home/avh/classes/demos/awt.

                    Please  note  that  the  -d  and   -classpath
                    options  have  independent  effects. The com-
                    piler reads only from  the  class  path,  and
                    writes  only to the destination directory. It
                    is often useful for the destination directory
                    to  be on the class path. If the -d option is
                    not specified, the  source  files  should  be
                    stored in a directory hierarchy that reflects
                    the package structure, so that the  resulting
                    class files can be easily located.

     -depend        This  option  makes  the  compiler   consider
                    recompiling  class  files that are referenced
                    from other class  files.  Normally,  it  only
                    recompiles missing or out-of-date class files
                    that are referred to from source code.

     -deprecation   Generate a warning for every use or  override
                    of a deprecated member or class.  A member or
                    class  is  deprecated  if  its  documentation
                    comment  contains  the  @deprecated tag.  The
                    compiler will emit a morning at  the  end  of
                    compilation  whether  or  not -deprecation is
                    used; this option causes the location of each
                    individual use or override to be noted.

                    Deprecated  members  or  classes  are   deli-
                    berately  not  mentioned  if  the source file
                    containing the deprecation  is  being  recom-
                    piled.   This  can happen because the file is
                    on the command line  or  because  -depend  is
                    used and the source file was out of date.

     -encoding encoding_name
                    Specify the source file encoding  name,  such
                    as EUCJIS/SJIS.  If this option is not speci-
                    fied, then the platform default converter  is
                    used.

     -g             Enables  generation  of   debugging   tables.
                    Debugging  tables  contain  information about
                    line numbers and local variables  -  informa-
                    tion   used   by  Java  debugging  tools.  By
                    default, only  line  numbers  are  generated,
                    unless optimization (-O) is turned on.

     -Jjavaoption   Passes through the  string  javaoption  as  a
                    single  argument  to  the java(1) interpreter
                    that runs the compiler. The  argument  should
                    not  contain  spaces. Multiple argument words
                    must all begin with the prefix -J,  which  is
                    stripped.  This  is  useful for adjusting the
                    compiler's execution  environment  or  memory
                    usage.

     -nowarn        Turns off warnings.  If  used,  the  compiler
                    does not print out any warnings.

     -O             Directs the compiler to try to generate  fas-
                    ter   code  by  inlining  static,  final  and
                    private methods. This option  may  slow  down
                    compilation,  make larger class files, and/or
                    make it difficult  to  debug.  -O  implicitly
                    turns on -depend and turns off -g.

                    This option informs  the  compiler  that  all
                    generated  class  files  are guaranteed to be
                    delivered and upgraded as  a  unit,  enabling
                    optimizations that may otherwise break binary
                    compatibility. Use this option  with  discre-
                    tion.

                    The  Java  Language   Specification   section
                    13.4.21  describes  situations in which it is
                    legal  to  use  a  java  compiler  to  inline
                    methods. The compiler will only optimize code
                    for source which is available during the com-
                    pilation,  so  the only .java files discover-
                    able by the compiler should  be  for  classes
                    intended  to  be  delivered  or upgraded as a
                    unit. In particular, ensure that  no  sources
                    for   other   classes   are   accessible   on
                    CLASSPATH, keeping in mind that  the  present
                    working   directory,   `.',  is  appended  to
                    CLASSPATH.

                    To ensure that a product is able  to  run  on
                    1.1  as well as future binary-compatible java
                    virtual machines, one must  ensure  that  any
                    sources  for JDK 1.1 classes are never avail-
                    able along CLASSPATH while using -O.

     -verbose       Causes the compiler and linker to  print  out
                    messages  about  what  source files are being
                    compiled  and  what  class  files  are  being
                    loaded.

EXAMPLE
  Compiling One or More Classes
     In  this  example,  the  source   files   are   located   at
     /home/ws/src/java/awt/*.java.

          % cd /home/ws/src/java/awt/
          % javac Button.java Canvas.java

     Compiles the two classes.

ENVIRONMENT VARIABLES
     CLASSPATH      Used to provide the system  with  a  path  to
                    user-defined    classes.    Directories   are
                    separated by colons, for example,

                         .:/home/avh/classes:/usr/local/java/classes

ATTRIBUTES
     See attributes(5) for a description of the following  attri-
     butes:

     __________________________________
    | ATTRIBUTE TYPE|  ATTRIBUTE VALUE|
    |_______________|__________________|_
    | Availability  |  SUNWjvdev      |
    |_______________|_________________|

SEE ALSO
     java(1),  javadoc(1),  javah(1),  javap(1),  jdb(1),  attri-
     butes(5)