--------- begin quote
The loadjava tool creates schema objects from files and loads them into a schema. Schema objects can be created from Java source, class, and data files. loadjava can also create schema objects from SQLJ files; the Oracle8i SQLJ Developer's Guide and Reference describes how to use loadjava with SQLJ.
You must have the following SQL database privileges to load classes:
CREATE PROCEDURE and CREATE TABLE privileges to load into your schema.
CREATE ANY PROCEDURE and CREATE ANY TABLE privileges to load into another schema.
oracle.aurora.security.JServerPermission.loadLibraryInClass.. See the "Database Contents and JVM Security" section in Chapter 5 of the Oracle8i Java Developer's Guide for more information.
You can execute the loadjava tool either through the command line (as described below) or through the loadjava method contained within the DBMS_JAVA class. To execute within your Java application, do the following:
call dbms_java.loadjava('... options...');
where the options are the same as specified below. Each option should be separated by a blank. You should not separate the options with a comma. The only exception for this is the -resolver option, which contains blanks. For -resolver, you should specify all other options first, a comma, then the -resolver option with its definition. You should not specify the following options as they relate to the database connection for the loadjava command-line tool: -thin, -oci8, -user, -password. The output is directed to stderr. Set serveroutput on and call dbms_java.set_output as appropriate.
The loadjava tool is located in the bin subdirectory under $ORACLE_HOME.
Table 1-2 summarizes the loadjava arguments. If you execute loadjava multiple times specifying the same files and different options, the options specified in the most recent invocation hold. There are two exceptions:
If loadjava does not load a file because it matches a digest table entry, most options on the command line have no effect on the schema object. The exceptions are -grant, and -resolve, which are always obeyed. Use the -force option to direct loadjava to skip the digest table lookup.
The -grant option is cumulative; every user specified in every loadjava invocation for a given class in a given schema has the EXECUTE privilege. You cannot grant to a role; you can only grant to specified schemas or users.
Table 1-2 loadjava Argument Summary
You can specify any number and combination of .java, .class, .sqlj, .ser, .jar .zip, and resource file name arguments in any order.
Turns on SQL logging and is equivalent to javac -g.
By default, class schema objects run with the privileges of their invoker. This option confers definer (the developer who invokes loadjava) privileges upon classes instead. (This option is conceptually similar to the UNIX setuid facility.)
Identifies the source file encoding for the compiler, overriding the matching value, if any, in the JAVA$OPTIONS table. Values are the same as for the javac -encoding option. If you do not specify an encoding on the command line or in a JAVA$OPTIONS table, the encoding is assumed to be latin1. The -encoding option is relevant only when loading a source file.
Forces files to be loaded even if they match digest table entries.
Grants the EXECUTE privilege on loaded classes to the listed users. (To call the methods of a class, users must have the EXECUTE privilege.) Any number and combination of user names can be specified, separated by commas but not spaces (-grant Bob,Betty not -grant Bob, Betty). Note: -grant is a "cumulative" option; users are added to the list of those with the EXECUTE privilege. To remove privileges, either drop and reload the schema object with the desired privileges or change the privileges with the SQL REVOKE command. Also, you cannot grant to a role. All grants must be explicit in granting to specific users.
To grant the EXECUTE privilege on an object in someone else's schema requires that the original CREATE PROCEDURE privilege was granted with WITH GRANT options.
Note: You must uppercase the schema name.
Prints the usage message on how to use the loadjava tool and its options.
Suppresses the usage message that is given if either no option is specified or if the -help option is specified.
Causes the classes to be loaded without bytecode verification. You must be granted oracle.aurora.security.JServerPermission(Verifier) to execute this option. In addition, this option must be used in conjunction with -r.
Directs loadjava to communicate with the database using the OCI JDBC driver. -oci8 and -thin are mutually exclusive; if neither is specified -oci8 is used by default. Choosing -oci8 implies the syntax of the -user value. You do not need to provide the URL.
Directs loadjava load the classes in an order that facilitates resolution of those classes. Classes are loaded in a manner where any dependent class is loaded before the class that includes it as a dependency.
Compiles (if necessary) and resolves external references in classes after all classes on the command line have been loaded. If you do not specify -resolve, loadjava loads files but does not compile or resolve them.
Specifies an explicit resolver spec, which is bound to the newly loaded classes. If -resolver is not specified, the default resolver spec, which includes current user's schema and PUBLIC, is used. See "resolver" in this section for details.
Designates the schema where schema objects are created. If not specified, the logon schema is used. To create a schema object in a schema that is not your own, you must have the CREATE PROCEDURE or CREATE ANY PROCEDURE privilege. You must have CREATE TABLE or CREATE ANY TABLE privilege. Finally, you must have the JServerPermission.loadLibraryInClass for the class.
Causes the output to be directed to stdout, rather than to stderr.
Creates a PUBLIC synonym for loaded classes making them accessible outside the schema into which they are loaded. To specify this option, you must have the CREATE PUBLIC SYNONYM privilege. If -synonym is specified for source files, classes compiled from the source files are treated as if they had been loaded with -synonym.
Creates the loadjava internal tables within this specified schema, rather than in the Java file destination schema.
Directs loadjava to communicate with the database using the thin JDBC driver. -oci8 and -thin are mutually exclusive; if neither is specified, then -oci8 is used by default. Choosing -thin implies the syntax of the -user value. You do need to specify the appropriate URL through the -user option.
Specifies a user, password, and database connect string; the files will be loaded into this database instance. The argument has the form /[@].
Directs loadjava to emit detailed status messages while running. Use -verbose to learn when loadjava does not load a file because it matches a digest table entry.
-------------- end quote