javac - The Java Compiler
javac compiles Java programs.
SYNOPSIS
javac [ options ] filename.java...
javac_g [ options ] filename.java...
DESCRIPTION
The javac command compiles Java source code contained in the files 
specified by
filename.java... into class files containing Java bytecodes. Filenames
 must end in the .java extension. 
Java classes  are interpreted by the java command.
Every class defined in the files passed to javac has its resulting 
bytecodes 
stored in a file named classname.class. The .class file is stored in
the same directory  as the corresponding .java file, unless the -d
option is used. If a class in one of the 
files passed to javac references a class not in any of the files passed
to javac then javac searches for the referenced class using the 
class path. 
When you define your own classes you need to specify their location.
Use CLASSPATH to do this. 
CLASSPATH consists of a colon separated list of directories that specifies the 
path. 
For example:
    .:/home/avh/classes
Note that the system always appends the location of the system classes
onto the end of the class path unless you use the -classpath option to 
specify a path.
javac_g is a non-optimized version of javac suitable for use with 
debuggers like dbx or gdb.
OPTIONS
-  -classpath path
 -  Specifies the path javac uses to look up classes. Overrides the default 
or the CLASSPATH environment variable if it is set. Directories are separated by 
colons. Thus the general format for path is:
    .:<your_path>
For example:
    .:/home/avh/classes:/usr/local/java/classes
 - -d directory
 -  Specifies the root directory of the class hierarchy. Thus doing:
    javac -d <my_dir>/editor/gui/TextWindow.java
causes the class file for the class called editor.gui.Textwindow to be
saved as:
    <my_dir>/editor/gui/TextWindow.class
 - -g   
 -  Enables generation of debugging tables. Debugging tables contain 
information about line numbers and local variables - information used by 
debugging tools. By default, this option is on. To turn debugging table 
generation off, use the -ng option.
 - -ng 
 - Disables generation of debugging tables. This makes the Java bytecode 
files smaller, but makes it impossible for debugging tools to access local 
variables or print out line numbers.
 - -nowarn
 - Turns off warnings. If used the compiler does not print out any warnings.
 - -O
 - Optimizes compiled code by inlining static, final and private methods. 
Note that your classes may get larger in size.
 - -verbose
 -  Causes the compiler and linker to print out messages about what source 
files are being compiled and what class files are being loaded.
 
ENVIRONMENT VARIABLES
- CLASSPATH
 - Used to provide the system a path to user-defined classes. Directories are
separated by colons, for example,
    .:/home/avh/classes:/usr/local/java/classes
 
SEE ALSO
java,  javah,  
javaprof, javap,  
javadoc
The Java Language 
Specification