Next: Encodings, Previous: Input and output files, Up: Invoking gcj [Contents][Index]
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 text 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.
-Idir
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 important, we recommend
always using -I
instead of the other options for manipulating the
class path.
--classpath=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.
--CLASSPATH=path
Deprecated synonym for --classpath
.
--bootclasspath=path
Where to find the standard builtin classes, such as java.lang.String
.
--extdirs=path
For each directory in the path, place the contents of that directory at the end of the class path.
CLASSPATH
This is an environment variable which holds a list of paths.
The final class path is constructed like so:
-I
.
CLASSPATH
environment variable is specified,
then its value is appended.
Otherwise, the current directory ("."
) is appended.
--bootclasspath
was specified, append its value.
Otherwise, append the built-in system directory, libgcj.jar.
--extdirs
was specified, append the contents of the
specified directories at the end of the class path. Otherwise, append
the contents of the built-in extdirs at $(prefix)/share/java/ext
.
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.)
-fforce-classes-archive-check
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.
-fsource=VERSION
This option is used to choose the source version accepted by
gcj
. The default is ‘1.5’.
Next: Encodings, Previous: Input and output files, Up: Invoking gcj [Contents][Index]