Next: , Previous: Invoking gij, Up: Top

5 Invoking gcj-dbtool.

gcj-dbtool is a tool for creating and manipulating class file mapping databases. libgcj can use these databases to find a shared library corresponding to the bytecode representation of a class. This functionality is useful for ahead-of-time compilation of a program that has no knowledge of gcj.

gcj-dbtool works best if all the jar files added to it are compiled using -findirect-dispatch.

Note that gcj-dbtool is currently available as “preview technology”. We believe it is a reasonable way to allow application-transparent ahead-of-time compilation, but this is an unexplored area. We welcome your comments.

This creates a new database. Currently, databases cannot be resized; you can choose a larger initial size if desired. The default size is 32,749.
This adds a jar file to the database. For each class file in the jar, a cryptographic signature of the bytecode representation of the class is recorded in the database. At runtime, a class is looked up by its signature and the compiled form of the class is looked for in the corresponding shared library. The -a option will verify that LIB exists before adding it to the database; -f skips this check.
Merge a number of databases. The output database overwrites any existing database. To add databases into an existing database, include the destination in the list of sources.

If - or -0 are used, the list of files to read is taken from standard input instead of the command line. For -0, Input filenames are terminated by a null character instead of by whitespace. Useful when arguments might contain white space. The GNU find -print0 option produces input suitable for this mode.

Test a database.
List the contents of a database.
Print the name of the default database. If there is no default database, this prints a blank line. If LIBDIR is specified, use it instead of the default library directory component of the database name.
Print a help message, then exit.
Print version information, then exit.