GIJ is not limited to interpreting bytecode. It includes a class loader which can dynamically load shared objects, so it is possible to give it the name of a class which has been compiled and put into a shared library on the class path. . This is a dependency package providing the default GNU Java bytecode interpreter.