Node: Input Options, Next: , Previous: Input and output files, Up: Invoking gcj

Input Options

gcj has options to control where it looks to find files it needs. For instance, gcj might need to load a class that is referenced by the file it has been asked to compile. Like other compilers for the Java language, gcj has a notion of a class path. There are several options and environment variables which can be used to manipulate the class path. When gcj looks for a given class, it searches the class path looking for matching .class or .java file. gcj comes with a built-in class path which points at the installed libgcj.jar, a file which contains all the standard classes.

In the below, a directory or path component can refer either to an actual directory on the filesystem, or to a .zip or .jar file, which gcj will search as if it is a directory.

All directories specified by -I are kept in order and prepended to the class path constructed from all the other options. Unless compatibility with tools like javac is imported, we recommend always using -I instead of the other options for manipulating the class path.
This sets the class path to path, a colon-separated list of paths (on Windows-based systems, a semicolon-separate list of paths). This does not override the builtin ("boot") search path.
Deprecated synonym for --classpath.
Where to find the standard builtin classes, such as java.lang.String.
For each directory in the path, place the contents of that directory at the end of the class path.
This is an environment variable which holds a list of paths.

The final class path is constructed like so:

The classfile built by gcj for the class java.lang.Object (and placed in libgcj.jar) contains a special zero length attribute gnu.gcj.gcj-compiled. The compiler looks for this attribute when loading java.lang.Object and will report an error if it isn't found, unless it compiles to bytecode (the option -fforce-classes-archive-check can be used to override this behavior in this particular case.)

This forces the compiler to always check for the special zero length attribute gnu.gcj.gcj-compiled in java.lang.Object and issue an error if it isn't found.