12.6 loadjavaツール
loadjavaツールは、ファイルからスキーマ・オブジェクトを生成してスキーマにロードします。スキーマ・オブジェクトはJavaソース、クラスおよびデータファイルから作成できます。
クラスをロードするには、次のSQLデータベース権限が必要です。
-
スキーマにロードする場合は
CREATE PROCEDUREおよびCREATE TABLE権限。 -
別のスキーマにロードする場合は
CREATE ANY PROCEDUREおよびCREATE ANY TABLE権限。 -
oracle.aurora.security.JServerPermission.loadLibraryInClass.classname。
loadjavaツールは、コマンドラインから実行するか、またはDBMS_JAVAクラスに含まれるloadjavaメソッドを使用して実行できます。使用しているJavaアプリケーション内からこのツールを実行する方法は、次のとおりです。
call dbms_java.loadjava('... options...');
オプションは、loadjavaツールのコマンドラインで指定できるオプションと同じです。各オプションは空白で区切ります。オプションをカンマで区切らないでください。ただし、空白を含む-resolverオプションは例外です。-resolverの場合は、次に示すように、他のすべてのオプションを最初の入力パラメータで指定し、-resolverオプションは2番目のパラメータで指定します。
call dbms_java.loadjava('..options...', 'resolver_options');
-thin、-oci、-userおよび-passwordの各オプションは、loadjavaコマンドライン・ツールのデータベース接続に関連しているため、指定しないでください。出力はstderrに送信されます。serveroutputをオンに設定し、必要に応じてdbms_java.set_outputをコールします。
ノート:
loadjavaツールは、$ORACLE_HOMEの下のbinディレクトリに格納されています。
loadjavaツールは、終了直前に、正常に処理されたかどうかをチェックします。発生したすべての障害は、次のヘッダーの後に要約が示されます。
The following operations failed
データベースへの接続が失われるなど、条件によっては、loadjavaツールが完了前に停止する場合があります。エラーは次の構文で表示されます。
exiting: error_reason
内容は次のとおりです。
12.6.1 loadjavaツールの構文
loadjavaツールのコマンド構文は次のとおりです。
ノート:
-
クラス参照の解決では、
-genmissingオプションおよび-genmissingjarオプションよりも、(* -)オプションが推奨されます。 -
-genmissingオプションおよび-genmissingjarオプションは、オプション・ファイルまたはオプション表では使用できません。これらのオプションは、すべてのクラスのロードには適用可能で、特定のクラスにのみ使用することはできません。
loadjava {-user | -u} user [@database] [options]
file.java | file.class | file.jar | file.zip | resourcefile | URL...
[-casesensitivepub]
[-cleargrants]
[-debug]
[-d | -definer]
[-dirprefix prefix]
[-add-modules module-list]
[-module module-name]
[-automatic]
[-hotload]
[-e | -encoding encoding_scheme]
[-fileout file]
[-f | -force]
[-genmissing]
[-genmissingjar jar_file]
[-g | -grant user [, user]...]
[-help]
[-jarasresource]
[-noaction]
[-nosynonym]
[-nousage]
[-noverify]
[-o | -oci | oci8]
[-optionfile file]
[-optiontable table_name]
[-publish package]
[-pubmain number]
[-recursivejars]
[-r | -resolve]
[-R | -resolver "resolver_spec"]
[-append-resolver "resolver_spec"]
[-prepend-resolver "resolver_spec"]
[-resolveonly]
[-S | -schema schema]
[-stdout]
[-stoponerror]
[-s | -synonym]
[-tableschema schema]
[-t | -thin][-unresolvedok] [-v | -verbose] [-jarsasdbobjects] [-prependjarnames] [-nativecompile]
12.6.2 loadjavaツールの引数の概要
この項では、loadjavaツールのコマンド引数について要約します。オプションを変えて同じファイルを指定して複数回loadjavaツールを実行すると、最後の起動時に指定したオプションが有効になります。
ただし、このルールには次の2つの例外があります:
-
ダイジェスト表のエントリに一致しているために
loadjavaツールによってファイルがロードされない場合は、コマンドラインで指定した大半のオプションがスキーマ・オブジェクトに反映されません。例外は-grantと-resolveで、これらのオプションは必ず反映されます。loadjavaツールでダイジェスト表の参照をスキップするように指示するには、-forceオプションを使用する必要があります。 -
-grantオプションは累積です。特定スキーマの特定クラスに対して起動されたすべてのloadjavaツールに指定されているユーザーには、EXECUTE権限が付与されます。
表12-2 loadjavaの引数の概要
| 引数 | 説明 |
|---|---|
|
|
|
|
|
プロキシ・サーバーのホスト名とポートを指定します。 クラス、リソースおよびJavaソースをロードするために、サーバー・ホストまたは loadjava –u HR –r –v –proxy proxy_server:1020 http://my.server.com/this/is /the/path/my.jar
Password: password
URLサポートがサーバー内で使用される場合、リモート・ソースにアクセスするための適切なJavaパーミッションが必要です。 |
|
|
パッケージの公開時に、大文字と小文字が区別される名前を作成するように指示します。名前がすべて大文字でないかぎり、通常、PL/SQLでは名前を引用符で囲む必要があります。 |
|
|
-grant HR -cleargrants |
|
|
SQLロギングをオンにします。 |
|
|
定義者の権限をクラスに付与します。デフォルトでは、クラス・スキーマ・オブジェクトはその実行者の権限で実行されます。このオプションは、UNIXの |
|
|
スキーマ・オブジェクトの名前が決定される前に、 |
-add-modules <module-list> |
ロードされているクラスがJavaセッションでメイン・クラスとして呼び出されたときに、自動的に追加するモジュールをカンマ区切りリストで指定します。これらのモジュールで明示的に必要とされているモジュールもセッションに追加されます。 |
|
|
ロードされたクラスのリゾルバ仕様として 名前付きモジュールにロードする際には、デフォルト・リゾルバが |
-prepend-resolver <"resolver-spec"> |
指定したリゾルバ用語のリストをデフォルト・リゾルバの前に追加します。 |
-append-resolver <"resolver-spec"> |
指定したリゾルバ用語のリストをデフォルト・リゾルバの後に追加します。たとえば、--append-resolve ((* -))オプションを指定すると、この用語をデフォルト・リゾルバの末尾に追加できます。
|
-automatic |
module-infoなしでロードされたJARファイルから自動モジュールを作成します。 |
-hotload |
指定したモジュールがmodule-dataオブジェクトに定義したパッケージの現在のリストをホットロード中に取得します。これらのモジュールに対してパッケージが後で追加または削除された場合は、そのモジュールを再ロードまたは再ホットロードする必要があります。
|
-module <name> |
指定したモジュールにクラスをロードします。module-info JARエントリがあるJARファイルをロードする場合、または-automatic loadjavaオプションが指定されている場合、このオプションは必要ありません。また、同じloadjavaコマンドによって、対応する標準ディレクトリの場所からmodule-infoファイルがロードされる場合も必要ありません。指定したモジュール名が、ロードされたmodule-infoクラスまたはJARファイルに指定された名前と一致しない場合、エラーが発生します。モジュール名が指定されていないか推測されない場合、名前のないモジュールにオブジェクトがロードされます。
|
|
|
コンパイラのためにソース・ファイルのエンコーディングを識別し、 System.getProperty("file.encoding");
このオプションはソース・ファイルのロード時のみ有効です。 |
|
|
すべてのメッセージを指定のファイルに表示します。 |
|
|
ダイジェスト表のエントリに一致する場合でも、ファイルが強制的にロードされます。 |
|
|
参照をソースから検出することは、参照をクラス・ファイルから検出するよりも困難であり、通常、ライブラリの配布にソースは使用しないため、 欠落しているクラスがロードされるスキーマは、参照元クラスが他のスキーマで作成された場合でも、 |
|
|
|
|
|
ロードされたクラスに対する
ノート:
|
|
|
|
|
|
JARファイルを解凍してその中の各クラスをロードするかわりに、JARファイル全体をリソースとしてスキーマにロードします。脚注1 |
|
|
ファイルに対してはアクションを実行しません。これには、スキーマ・オブジェクトの作成、実行パーミッションの付与などのアクションが含まれます。このオプションは、通常、特定のクラスがJARファイルに作成されるのを抑制するために、オプション・ファイル内で使用します。コマンドラインで使用すると、オプション・ファイルでオーバーライドされないかぎり、 |
|
|
|
|
|
他のJARファイルに含まれているJARファイルをリソースとして処理します。これはデフォルトの動作です。このオプションは、 |
|
|
クラスのパブリック・シノニムを作成しないように指定します。これはデフォルトの動作です。このオプションは、 |
|
|
オプションが何も指定されていないか、 |
|
|
クラスがバイトコードの検証なしにロードされます。このオプションを使用するには、 |
|
|
|
|
|
|
|
|
パターンおよびオプションのソースがファイルではなくSQL表であること以外は、 |
|
|
|
|
|
|
|
|
コマンドラインのすべてのクラスがロードされた後に、必要に応じて、クラス内の外部参照をコンパイルおよび解決します。 |
|
|
|
|
|
スキーマ・オブジェクトを作成するスキーマを指定します。このオプションを指定しないと、
さらに、クラスに対する ノート: 前述の権限を付与すると、SYSスキーマ以外のすべてのスキーマでの表の作成および操作が可能になります。セキュリティ上の理由から、これらの設定は十分に注意して使用することをお薦めします。 |
|
|
|
|
|
エラーが発生したときに処理を停止します。通常、 このオプションは、 |
|
|
ロードされるクラスに対して |
|
|
Javaファイルの接続先スキーマではなく、指定したスキーマ内に |
|
|
|
|
|
|
|
|
ユーザー名、パスワードおよびデータベース接続文字列を指定します。ファイルはこのデータベース・インスタンスにロードされます。 |
|
|
|
|
|
JARファイル内のクラスおよびリソースに対して作成されるデータベース・オブジェクトに加えて、JARファイルのコンテンツ全体を含む別個のデータベース・オブジェクトを作成します。データベースJARオブジェクトは、モジュールJARおよびマルチリリースJARに対して常に作成されます。 |
|
|
JARファイルからクラスおよびリソースをロードするときに、クラスまたはリソースの名前が前に追加されます。モジュールJARの場合は、モジュール名ではなくJARファイル名が、データベース・オブジェクト接頭辞として使用されます。 |
脚注1
この方法でJARファイルをロードする場合、これを解決や実行に使用することはできません。
12.6.3 loadjavaツールの引数の詳細
この項では、動作が複雑なloadjavaツールの一部の引数について、loadjavaの引数の概要の表よりさらに詳しく説明します。
ファイル名
.class、.java、.jar、.zipおよびリソース・ファイルは、必要な数だけ任意の順序で指定できます。JARファイルまたはZIPファイルを指定すると、loadjavaツールは、そのJARまたはZIPのファイルを処理します。JARまたはZIPのスキーマ・オブジェクトはありません。JARまたはZIPに別のJARまたはZIPが含まれていると、loadjavaツールはこれらのファイルを処理しません。
ファイルのロード方法としては、JARまたはZIPにファイルをまとめ、アーカイブとしてロードすることをお薦めします。アーカイブをロードすることで、リソース・スキーマ・オブジェクトのネーミングの手間を省くことができます。Java Development Kit (JDK)で使用するJARまたはZIPがある場合も、loadjavaツールでロードでき、この場合、リソース・スキーマ・オブジェクトのネーミングについては知る必要がありません。
スキーマ・オブジェクト名はファイル名とは異なり、loadjavaツールは異なるタイプのスキーマ・オブジェクトを異なる方法でネーミングします。クラス・ファイルは自己識別できるため、loadjavaツールによるクラス・ファイル名のスキーマ・オブジェクト名へのマッピングは開発者には表示されません。ソース・ファイル名のマッピングも開発者には表示されません。loadjavaツールは、ファイル内に定義されている最初のクラスの完全修飾名をスキーマ・オブジェクト名とします。JARファイルとZIPファイルにも、それぞれのファイルの名前が含まれています。
ただし、リソース・ファイルは自己認識できません。loadjavaツールは、引数で指定したとおりのリテラルなファイル名からJavaリソース・スキーマ・オブジェクト名を生成します。リソース・スキーマ・オブジェクトがクラスで使用され、リソースの正しい指定方法がわかりにくい場合があるため、コマンドラインで正しくリソース・ファイル名を指定することが重要です。
各リソース・ファイルを正確にロードする最善の方法は、パッケージ・ツリーの最上部からloadjavaツールを実行し、そのディレクトリに相対するリソース・ファイル名を指定する方法です。
ノート:
パッケージ・ツリーの最上部とは、CLASSPATHで指定するディレクトリです。
この規則に従わない場合は、次のリソース・ファイル・ネーミングに従ってください。リソース・ファイルをロードすると、loadjavaツールはコマンドラインで指定したとおりのリテラルなリソース・ファイル名からリソース・スキーマ・オブジェクト名を生成します。たとえば、次のように入力した場合:
% cd /home/HR/javastuff % loadjava options alpha/beta/x.properties % loadjava options /home/HR/javastuff/alpha/beta/x.properties
同じファイルを相対パス名と絶対パス名で指定していますが、loadjavaツールはalpha/beta/x.propertiesとROOT/home/HR/javastuff/alpha/beta/x.propertiesの2つのスキーマ・オブジェクトを作成します。リソース・スキーマ・オブジェクトの名前は、入力したとおりのファイル名から生成されます。
クラスは、リソース・ファイルを相対的に参照することも絶対的に参照することもできます。loadjavaツールとクラス・ローダーで同じスキーマ・オブジェクト名を使用するには、クラスからgetResource()またはgetResourceAsString()に渡す名前をコマンドラインに入力します。
リソース・ファイルは、次のようにJARでロードできます。この場合、名前をコマンドラインに正しく入力するために、クラスで使用するリソース名が相対名か絶対名かを記憶したり、ディレクトリを変更する必要はありません。
% cd /home/HR/javastuff % jar -cf alpharesources.jar alpha/*.properties % loadjava options alpharesources.jar
処理をさらに簡略化するには、クラス・ファイルとリソース・ファイルの両方をJARで格納します。これによって、次のコマンドを起動しても同じ処理を実行できます。
% loadjava options alpha.jar % loadjava options /home/HR/javastuff/alpha.jar
前述したloadjavaツール・コマンドは、JARファイルの内容をロードするには任意のパス名が使用できることを示しています。冗長なコマンドを実行した場合でも、loadjavaツールは、ファイルを2回ロードする必要がないことをダイジェスト表を通じて認識します。したがって、loadjavaツールの前回の起動後に変更されたファイルが少ない場合でも、JARファイルの再ロードには、考えられているほどの時間はかかりません。
definer
{-definer | -d}
このオプションはストアド・プロシージャにおける定義者権限に相当し、概念的にはUNIXのsetuid機能に類似しています。ただし、setuidはプログラム全体に適用されますが、-definerオプションは各クラスに適用できます。さらに、定義者ごとに異なる権限を付与することもできます。アプリケーションは多数のクラスで構成される場合があるため、意図した結果を得るには、-definerを注意して適用する必要があります。つまり、クラスに必要以上の権限を付与しないように注意してください。
noverify
[-noverify]
このオプションを指定すると、クラスがバイトコードの検証なしにロードされます。このオプションを実行するには、oracle.aurora.security.JServerPermission(Verifier)を付与されていることが必要です。また、このオプションは、-resolveと併用する必要があります。
検証機能によって、形式が無効なJavaバイナリがサーバーにロードされて実行されるのを防止できます。ロードするJARまたはクラスが有効であることが判明している場合は、このオプションによってloadjavaツールの関連プロセスを高速化できます。検証プロセス時には、解析のパフォーマンスを向上させるためのOracle Database固有の最適化が実行されます。したがって、このオプションを使用すると、アプリケーションの解析のパフォーマンスが低下する場合があります。
optionfile
[-optionfile <file>]
このオプションを使用すると、loadjavaツールで指定できる各種オプションにファイルを指定できます。このファイルは、他のloadjavaツール・オプションが処理される前に、loadjavaツールで読み取られて処理されます。このファイルには1行以上が含まれ、各行にはパターンと一連のオプションが含まれます。各行は、改行文字(\n)で終了している必要があります。
loadjavaツールで処理されるファイルまたはJARエントリごとに、作成されるスキーマ・オブジェクトのロング名がパターンと照合してチェックされます。パターンは、任意の文字列を示すワイルドカード(*)で終了している場合があり、使用しない場合、パターンは名前と完全に一致する必要があります。
一致するJavaスキーマ・オブジェクトに適用されるオプションは、行の後半で指定します。オプションは、コマンドライン・オプションを置換するのではなく、コマンドライン・オプションに追加されます。複数の行が名前と一致する場合、一致する行はパターンの長さが短い順にソートされ、各行のオプションが追加されます。通常、loadjavaツール・オプションは累積ではありません。後から追加されたオプションは以前のオプションをオーバーライドします。つまり、長いパターンで行に指定されたオプションは、短いパターンで行に指定されたオプションをオーバーライドします。
このファイルは、java.io.StreamTokenizerで解析されます。
このファイルでJavaのコメントを使用できます。行のコメントは#で開始します。空の行は無視されます。引用文字には二重引用符(")を使用してください。つまり、空白を含むオプションは、二重引用符で囲む必要があります。-userや-verboseなどの特定のオプションは、loadjavaツールの処理全体に影響を与えますが、個別のJavaスキーマ・オブジェクトに対して実行されるアクションには影響を与えません。このようなオプションがオプション・ファイルに存在する場合は無視されます。
アプリケーションをパッケージ化するために、loadjavaツールは処理対象の各JARファイルでMETA-INF/loadjava-optionsエントリを検索します。このエントリが検出された場合、そのエントリは、JARファイル内の他のすべてのエントリに適用されるオプション・ファイルとして処理されます。ただし、loadjavaツールは、JARファイルで出現する順にエントリに対する処理を実行します。
loadjavaツールがMETA-INF/loadjava-optionsを処理する前にエントリを部分的に処理した場合、適用可能なオプションに準拠するようにスキーマ・オブジェクトの変更を試みます。たとえば、loadjavaツールは、定義者権限で作成される必要があったクラスが実行者権限で作成された場合に、そのクラスを変更します。-noactionに対する修正は、作成済のスキーマ・オブジェクトを削除することです。loadjavaツールの起動前にスキーマ・オブジェクトが存在していた場合にそれが削除されることを除き、これによって正しい結果が得られます。
optiontable
[-optiontable table_name]
このオプションでは、クラスのプロパティを永続的に指定できます。表をロードする機構はありません。表名には、3つの文字型の列、PATTERN、OPTIONおよびVALUEを含める必要があります。PATTERNの値は、オプション・ファイルのパターンと同様に解釈されます。他の2つの列は、対応するコマンドライン・オプションで、オペランドを取ります。たとえば、次のコマンドを使用して表FOOを作成するとします。
create table foo (pattern varchar2(2000), option_name varchar2(2000), value varchar2(2000));
この場合、optiontableオプションを次のように使用できます。
loadjava -optiontable foo myjar.jar
オペランドを取らないオプションの場合はVALUE列をNULLにします。表の行は、オプション・ファイルの行と同様に処理されます。特定のスキーマ・オブジェクトのオプションを決定するために行が検査され、一致するとそのオプションがオプション・リストに追加されます。2つの行に、-synonymと-nosynonymなど、同じパターンだが矛盾するオプションがある場合、どちらが優先されるかは不明です。2つの行のパターン列とオプション列が同じである場合、どちらのVALUEが優先されるかは不明です。
publish
[-publish <package>] [-pubmain <number>]
公開オプションを使用すると、loadjavaツールは処理済のクラスに含まれるメソッドのPL/SQLラッパーを作成します。通常、ユーザーは、JAR内にあるいくつかのクラスのラッパーのみを公開します。このオプションは、オプション・ファイルで指定されている場合に最も役立ちます。
公開可能にするには、メソッドが次の条件を満たす必要があります。
-
メソッドが
publicクラスのメンバーであることが必要です。 -
メソッドを
publicおよびstaticとして宣言する必要があります。 -
メソッドのシグネチャは、次の規則を満たしてマップ可能であることが必要です。
-
引数および戻り値のJavaの算術型は、
NUMBERにマップされます。 -
引数および戻り型として使用される
charは、VARCHARにマップされます。 -
引数および戻り型として使用される
java.lang.Stringは、VARCHARにマップされます。 -
メソッドの唯一の引数が
java.lang.String型である場合は、-pubmainオプションで説明したように、特別な規則が適用されます。 -
戻り型が
voidになると、プロシージャが作成されます。 -
戻り型が算術型、
charまたはjava.lang.String型の場合は、ファンクションが作成されます。
-
前述の規則に該当しない引数または戻り型を取るメソッドは、適格ではありません。SQL引数のOUTとIN OUT、OBJECT型およびその他多数のSQL機能に対するプロビジョニングはありません。
resolve
{-resolve | -r}
以前ロードしたクラスをloadjavaツールで強制的にコンパイルおよび解決するには、-resolveを使用します。解決はロード後に個別に行われるため、-forceを指定する必要はありません。
リゾルバ
{-resolver | -R} resolver_specification
このオプションは、loadjavaツールが作成または置換したクラス・スキーマ・オブジェクトに明示的なリゾルバ仕様を対応付けます。
リゾルバ仕様は1つ以上の項目で構成されます。各項目の内容は、次の構文で表された名前仕様とスキーマ仕様です。
"((name_spec schema_spec) [(name_spec schema_spec)] ...)"
名前仕様は、import文における名前に類似しています。Javaの完全修飾クラス名、最終要素がワイルドカード文字のアスタリスク(*)のパッケージ名、またはアスタリスク(*)のみを指定できます。ただし、名前仕様の要素間は、ピリオド(.)ではなくスラッシュ(/)で区切る必要があります。たとえば、名前仕様a/b/*は、名前がa.bで始まるすべてのクラスに一致します。特殊な名前である*はすべてのクラス名に一致します。
スキーマ仕様として、スキーマ名またはワイルドカード文字のダッシュ(-)を指定できます。ワイルドカードは、スキーマを特定するものではなく、一致する名前への参照が解決できない場合でもクラスを無効とマークしないように解決処理に対して指示するために使用します。テスト対象のクラスで参照しているクラスをロードできない、またはロードしない場合は、ダッシュ(-)を使用します。たとえば、クラスでGUIクラスを参照していても、サーバーでの実行時はGUIがないため、このGUIクラスはコールされません。
解決処理では、名前が名前仕様に一致するスキーマ・オブジェクトが、パートナ・スキーマ仕様で指定されているスキーマで検索されます。
この解決処理では、リゾルバ仕様のリスト順にスキーマが検索されます。たとえば、
-resolver '((* HR) (* PUBLIC))'
これは、最初にHRで、次にPUBLICで参照を検索することを意味します。参照が解決されない場合は、参照元クラスを無効とマークし、エラー・メッセージを表示します。
次に例を示します。
-resolver "((* HR) (* PUBLIC) (my/gui/* -))"
これは、最初にHRで、次にPUBLICで参照を検索することを意味します。参照先がパッケージmy.gui内のクラスで、その参照が見つからない場合は、参照元クラスを有効とマークし、エラー・メッセージは表示しません。参照先がmy.gui内のクラスでなく、その参照が見つからない場合は、参照元クラスを無効とマークし、エラー・メッセージを表示します。
user
{-user | -u} user/password[@database_url]
デフォルトでは、loadjavaツールは、-userオプションで指定されたログイン・スキーマにロードされます。別のロード先スキーマを指定するには、-schemaオプションを使用します。そのスキーマにログインする必要はありませんが、スキーマを変更するパーミッションが必要になります。
@database_urlの使用可能な形式は、次に説明するように、-ociを指定するか、または-thinを指定するかによって異なります。
-
-oci:@database_urlはオプションです。指定しない場合、loadjavaツールはユーザーのデフォルト・データベースを使用します。指定した場合、database_urlはTNS名またはOracle Net Servicesの名前/値リストのいずれかになります。 -
-thin:@database_urlは必須です。形式はhost:lport:SIDです。説明:
-
hostは、データベースが動作しているコンピュータの名前です。 -
lportは、Oracle Net Services接続のリスニング用に構成されたリスナー・ポートです。デフォルト・インストールでは5521です。 -
SIDは、データベース・インスタンスの識別子です。デフォルト・インストールではORCLです。
-
次に、loadjavaツールのコマンド例を示します。
-
デフォルトのOCIドライバでデフォルト・データベースに接続し、JAR内のファイルを
TESTスキーマにロードしてから、ファイルを解決する場合loadjava -u joe -resolve -schema TEST ServerObjects.jar Password: password -
JDBC Thinドライバで接続し、クラス・ファイルとリソース・ファイルをロードして、各クラスを解決する場合
loadjava -thin -u HR@dbhost:5521:orcl \ -resolve alpha.class beta.props Password: password -
alpha.classを実行できるユーザー群にBettyとBobを追加する場合loadjava -thin -schema test -u HR@localhost:5521:orcl \ -grant BETTY,BOB alpha.class Password: password
jarsasdbobjects
現在のloadjavaツールで処理されるJARと、それらに含まれるクラスがデータベースに格納されること、および、クラスとJARとの関連付けに関する情報がデータベースで保持されることを示します。つまり、この引数は、現在のloadjavaツールで処理されるJARが、データベース常駐JARとしてデータベースに格納されることを示します。
prependjarnames
-jarsasdbobjectsオプションと一緒に使用します。このオプションにより、異なるJARの同じ名前のクラスが同じスキーマ内で共存できます。
関連トピック