The main feature of gcj is that it can compile programs written in the Java programming language to native code. Most extensions that have been added are to facilitate this functionality.
libgcjsystem classloader. When trying to load a class
gnu.pkg.SomeClassthe system classloader will first try to load the shared library lib-gnu-pkg-SomeClass.so, if that fails to load the class then it will try to load lib-gnu-pkg.so and finally when the class is still not loaded it will try to load lib-gnu.so. Note that all `.'s will be transformed into `-'s and that searching for inner classes starts with their outermost outer class. If the class cannot be found this way the system classloader tries to use the
libgcjbytecode interpreter to load the class from the standard classpath.