javac

 


 
 
 
 User Commands                                            javac(1)
 
 
 


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.

OPTIONS

-classpath path Specifies the path javac uses to look up classes needed to run javac or being refer- enced by other classes you are compiling. If this option is not specified, the default value is taken from the CLASSPATH environment SunOS 5.8 Last change: 18 Jan 1998 1 User Commands javac(1) variable. If CLASSPATH is not set, the default is the current directory (".") fol- lowed by the location of the system classes shipped with the JDK. Directories (or zip files) 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. 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 com- ment contains the @deprecated tag. The com- piler will emit a warning at the end of SunOS 5.8 Last change: 18 Jan 1998 2 User Commands javac(1) 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 information about local variables for use by Java debugging tools. By default, only line number information is gen- erated. Prior to 1.2, the -g and -O options were mutually exclusive. In 1.2, it is possible to combine -g with -O, but the shortcuts taken by optimized code may occasionally produce surprising debugging results. For example, declared vari- ables may not exist and code may appear to move or not be executed at all. -nodebug Do not generate line number more local vari- able debugging information. -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 This option may slow down compila- tion, 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 SunOS 5.8 Last change: 18 Jan 1998 3 User Commands javac(1) 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 (or zip files) 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: SunOS 5.8 Last change: 18 Jan 1998 4 User Commands javac(1) __________________________________ | ATTRIBUTE TYPE| ATTRIBUTE VALUE| |_______________|_________________| | Availability | SUNWjvdev | |_______________|_________________|

SEE ALSO

java(1), javadoc(1), javah(1), javap(1), jdb(1), attri- butes(5) SunOS 5.8 Last change: 18 Jan 1998 5