Previous: GNU Classpath Properties, Up: System properties


12.3 libgcj Runtime Properties

The following properties are specific to the libgcj runtime and will normally not be found in other core libraries for the java language.

java.fullversion
The combination of java.vm.name and java.vm.version.
java.vm.info
Same as java.fullversion.
impl.prefix
Used by the java.net.DatagramSocket class when set to something else then the empty string. When set all newly created DatagramSockets will try to load a class java.net.[impl.prefix]DatagramSocketImpl instead of the normal java.net.PlainDatagramSocketImpl.
gnu.gcj.progname
The class or binary name that was used to invoke the program. This will be the name of the "main" class in the case where the gij front end is used, or the program binary name in the case where an application is compiled to a native binary.
gnu.gcj.user.realname
The real name of the user, as taken from the password file. This may not always hold only the user's name (as some sites put extra information in this field). Also, this property is not available on all platforms.
gnu.gcj.runtime.NameFinder.use_addr2line
Whether an external process, addr2line, should be used to determine line number information when tracing the stack. Setting this to false may suppress line numbers when printing stack traces and when using the java.util.logging infrastructure. However, performance may improve significantly for applications that print stack traces or make logging calls frequently.
gnu.gcj.runtime.NameFinder.show_raw
Whether the address of a stack frame should be printed when the line number is unavailable. Setting this to true will cause the name of the object and the offset within that object to be printed when no line number is available. This allows for off-line decoding of stack traces if necessary debug information is available. The default is false, no raw addresses are printed.
gnu.gcj.runtime.NameFinder.remove_unknown
Whether stack frames for non-java code should be included in a stack trace. The default value is true, stack frames for non-java code are suppressed. Setting this to false will cause any non-java stack frames to be printed in addition to frames for the java code.
gnu.gcj.runtime.VMClassLoader.library_control
This controls how shared libraries are automatically loaded by the built-in class loader. If this property is set to ‘full’, a full search is done for each requested class. If this property is set to ‘cache’, then any failed lookups are cached and not tried again. If this property is set to ‘never’ (the default), then lookups are never done. For more information, See Extensions.
gnu.gcj.runtime.endorsed.dirs
This is like the standard java.endorsed.dirs, property, but specifies some extra directories which are searched after the standard endorsed directories. This is primarily useful for telling libgcj about additional libraries which are ordinarily incorporated into the JDK, and which should be loaded by the bootstrap class loader, but which are not yet part of libgcj itself for some reason.
gnu.gcj.jit.compiler
This is the full path to gcj executable which should be used to compile classes just-in-time when ClassLoader.defineClass is called. If not set, gcj will not be invoked by the runtime; this can also be controlled via Compiler.disable.
gnu.gcj.jit.options
This is a space-separated string of options which should be passed to gcj when in JIT mode. If not set, a sensible default is chosen.
gnu.gcj.jit.cachedir
This is the directory where cached shared library files are stored. If not set, JIT compilation is disabled. This should never be set to a directory that is writable by any other user.
gnu.gcj.precompiled.db.path
This is a sequence of file names, each referring to a file created by gcj-dbtool. These files will be used by libgcj to find shared libraries corresponding to classes that are loaded from bytecode. libgcj often has a built-in default database; it can be queried using gcj-dbtool -p.