<!DOCTYPE REFENTRY PUBLIC "-//Sun Microsystems//DTD DocBook V3.0-Based SolBook Subset V2.0//EN" [
<!--ArborText, Inc., 1988-1998, v.4001-->
<!ENTITY % javaents SYSTEM "javaman.ent">
%javaents;
]>
<?Pub UDT _bookmark _target>
<?Pub Inc>
<refentry id="rmic-1">
<!--@(#)rmic.1 1.13 01/03/14 SMI;-->
<refmeta><refentrytitle>rmic</refentrytitle><manvolnum>1</manvolnum>
<refmiscinfo class="date">2001 年 11 月 30 日</refmiscinfo>
<refmiscinfo class="sectdesc">&man1;</refmiscinfo>
<refmiscinfo class="software">&java-release;</refmiscinfo>
<refmiscinfo class="arch">generic</refmiscinfo>
<refmiscinfo class="copyright"> Copyright 2001 Sun Microsystems, Inc. All rights reserved.  Copyright 2001 Sun Microsystems, Inc. Tous droits r&eacute;serv&eacute;s.  </refmiscinfo>
</refmeta>
<refnamediv><refname>rmic</refname><refpurpose> Java RMI スタブコンパイラ</refpurpose></refnamediv>
<refsynopsisdiv><title>&synp-tt;</title>
<cmdsynopsis><command>rmic</command><arg choice="opt"><option>bootclasspath</option>&nbsp;<replaceable>path</replaceable></arg><arg choice="opt"><option>classpath</option>&nbsp;<replaceable>path</replaceable></arg><arg choice="opt"><option>d</option>&nbsp;<replaceable>directory</replaceable></arg><arg choice="opt"><option>depend</option></arg><arg choice="opt"><option>extdirs</option>&nbsp;<replaceable>path</replaceable></arg><arg choice="opt"><option>g</option></arg><arg choice="opt"><option>idl</option></arg><arg choice="opt"><option>iiop</option></arg><arg choice="opt"><option>keepgenerated</option></arg><arg choice="opt"><option>J</option></arg><arg choice="opt"><option>nowarn</option></arg><arg choice="opt"><option>sourcepath</option>&nbsp;<replaceable>path</replaceable></arg><arg choice="opt"><option>
vcompat</option></arg><arg choice="opt"><option>verbose</option></arg><arg choice="opt"><option>v1.1</option></arg><arg choice="opt"><option>v1.2</option></arg><arg choice="plain"><replaceable>package-qualified-class-names</replaceable></arg>
</cmdsynopsis></refsynopsisdiv>
<refsect1><title>&desc-tt;</title>
<indexterm id="rmic-1-indx-1"><primary sortas="Java RMI stub compiler">Java RMI stub compiler &mdash; rmic</primary></indexterm><indexterm id="rmic-1-indx-2"><primary sortas="rmic">rmic &mdash; Java RMI stub compiler</primary></indexterm>
<para><command>rmic</command> コンパイラは、リモートオブジェクトを含んだコンパイル後の Java&trade; クラスの名前から、スタブとスケルトンクラスファイルを生成します。リモートオブジェクトとは、インタフェース <literal>java.rmi.Remote</literal> を実装するオブジェクトです。<command>rmic</command> コマンドに指定するクラス名は、<citerefentry><refentrytitle>javac</refentrytitle><manvolnum>1</manvolnum></citerefentry> コマンドで正しくコンパイルされたクラスを表し、かつパッケージ名で完全に修飾されている必要があります。次に示す例では、<literal>HelloImpl</literal> というクラスファイルに対して <command>rmic</command> を実行しています。<informalexample>
<para><screen>example% <userinput>rmic hello.HelloImpl</userinput></screen> </para>
</informalexample></para>
<para>これにより、<literal>HelloImpl_Skel.class</literal> と <literal>HelloImpl_Stub.class</literal> の 2 つのファイルが生成されます。</para>
<para>リモートオブジェクト用のスケルトンはサーバ側のエンティティで、実装されているリモートオブジェクトを呼び出すメソッドを含んでいます。</para>
<para>スタブとはリモートオブジェクトのプロキシで、リモートオブジェクトのメソッド呼び出しを実際のリモートオブジェクトが存在するサーバへ転送する役目を果たします。したがってクライアントによるリモートオブジェクトの参照は、実際には局所スタブへの参照となります。</para>
<para>スタブはリモートインタフェースだけを実装していて、リモートオブジェクトが実装している局所インタフェースは扱いません。スタブが実装しているリモートインタフェースは、リモートオブジェクトのものとまったく同一です。したがってクライアントは、キャストしたり型チェックしたりするのに Java 言語の組み込み演算子を使うことができます。</para>
</refsect1>
<refsect1><title>&opts-tt;</title>
<para>以下のオプションが使用できます。</para>
<variablelist termlength="wholeline"><varlistentry><term remap="20"><option>bootclasspath</option> <replaceable>path</replaceable></term><listitem><para>ブートストラップクラスファイルの位置をオーバーライドします。</para>
</listitem></varlistentry>
<varlistentry><term remap="20"><option>classpath</option> <replaceable>path</replaceable></term><listitem><para><command>rmic</command> がクラスを探すのに用いるパスを path で指定します。この指定値は、デフォルトおよび <envar>CLASSPATH</envar> 環境変数の設定値をオーバーライドします。複数のディレクトリを指定する場合はコロンで区切ります。したがって <replaceable>path</replaceable> の通常の形式は次のようになります。<informalexample>
<para><literal>.:&lt;</literal><replaceable>your_path</replaceable><literal>></literal></para>
</informalexample></para>
<para>以下に例を示します。<informalexample>
<para><literal>.:/usr/local/java/classes</literal></para>
</informalexample></para>
</listitem></varlistentry>
<varlistentry><term remap="20"><option>d</option> <replaceable>directory</replaceable></term><listitem><para>クラス階層構造のルートディレクトリを指定します。省略した場合、ルートディレクトリはデフォルトで現在のディレクトリになります。</para>
</listitem></varlistentry>
<varlistentry><term remap="20"><option>depend</option></term><listitem><para>他のクラスファイルから参照されているクラスファイルを再コンパイルさせます。デフォルトでは、コンパイラが再コンパイルするのは、ソースコードが参照しているクラスファイルのうち見つからないファイルおよび以前のファイルだけです。</para>
</listitem></varlistentry>
<varlistentry><term><option>extdirs</option> <replaceable>path</replaceable> </term><listitem><para>インストールされる拡張機能の位置をオーバーライドします。</para>
</listitem></varlistentry>
<varlistentry><term remap="20"><option>g</option></term><listitem><para>デバッグ用テーブルの生成を行います。このテーブルには行番号と局所変数に関する情報が含まれ、この情報は Java のデバッグツールが使用します。デフォルトでは、行番号だけが生成されます。</para>
</listitem></varlistentry>
<varlistentry><term remap="20"><option>idl</option></term><listitem><para><command>rmic</command> によって、指定したクラスおよび参照されたクラスの <acronym remap="small">OMG IDL</acronym> が生成されます。<acronym remap="small">IDL</acronym> では、プログラミング言語に依存せずに、宣言するだけでオブジェクトの <acronym remap="small">API</acronym> を指定できます。<acronym remap="small">IDL</acronym> は、<acronym remap="small">CORBA</acronym> バインディングを提供する任意の言語 (Java、C++ など) を使用して、メソッドおよびデータの書き込みおよび呼び出しを行うときの仕様として使われます。<option>idl</option> オプションは、合わせて以下のオプションも指定できます。<variablelist termlength="wholeline"><varlistentry><term remap="5"><option>always</option></term><term><option>alwaysgenerate</option></term><listitem><para>既存のスタブ、Tie、および <acronym>IDL</acronym> が入力クラスより新しいときでも、強制的に生成し直します。</para>
</listitem></varlistentry>
<varlistentry><term><option>factory</option> </term><listitem><para>生成された <acronym remap="small">IDL</acronym> で factory キーワードを使います。</para>
</listitem></varlistentry>
<varlistentry><term><option>idlModule</option> <literal>fromJavaPackage[.class]</literal> <literal>toIDLModule</literal></term><listitem><para><literal>IDLEntity</literal> パッケージのマッピングを指定します。次に例を示します。<informalexample><screen><userinput>-idlModule foo.bar my::real::idlmod.</userinput></screen>
</informalexample></para>
</listitem></varlistentry>
<varlistentry><term><option>idlFile</option> <literal>fromJavaPackage[.class]</literal> <literal>toIDLFile</literal> </term><listitem><para><literal>IDLEntity</literal> ファイルのマッピングを指定します。次に例を示します。<informalexample><screen><userinput>-idlFile test.pkg.X TEST16.idl</userinput></screen>
</informalexample></para>
</listitem></varlistentry>
</variablelist></para>
</listitem></varlistentry>
<varlistentry><term remap="20"><option>iiop</option></term><listitem><para><command>rmic</command> は、<acronym remap="small">JRMP</acronym> のスタブとスケルトンクラスの代わりに、<acronym remap="small">IIOP</acronym> のスタブと Tie クラスを生成します。スタブクラスは、リモートオブジェクトのローカルプロキシで、クライアントがサーバに呼び出しを送信するときに使われます。各リモートインタフェースにはスタブクラスが必要です。スタブクラスによってリモートインタフェースが実装されます。クライアントでリモートオブジェクトを参照すると、実際にはスタブを参照することになります。Tie クラスは、サーバ側で受信した呼び出しを処理し、その呼び出しを適切な実装クラスにディスパッチするときに使われます。各実装クラスには、Tie クラスが必要です。<option>iiop</option> を指定して <command>rmic</command> を起動すると、次の命名規約に準拠したスタブと Tie が生成されます。<informalexample><screen>_&lt;implementationName>_stub.class
_&lt;interfaceName>_tie.class</screen>
</informalexample><option>iiop</option> オプションは、合わせて以下のオプションも指定できます。<variablelist termlength="wholeline"><varlistentry><term remap="5"><option>always</option></term><term><option>alwaysgenerate</option></term><listitem><para>既存のスタブ、Tie、および <acronym>IDL</acronym> が入力クラスより新しいときでも、強制的に生成し直します。</para>
</listitem></varlistentry>
<varlistentry><term><option>nolocalstubs</option></term><listitem><para>同じプロセスのクライアントとサーバに対して最適化されたスタブを作成しません。</para>
</listitem></varlistentry>
<varlistentry><term><option>noValueMethods</option></term><listitem><para><option>idl</option> オプションとともに使用する必要があります。発行された <acronym remap="small">IDL</acronym> に、valuetype メソッドおよび初期化子を追加しません。このメソッドおよび初期化子は、valuetype のオプションです。<option>idl</option> オプションを使うときは、<option>noValueMethods</option> オプションを指定しない限り生成されます。</para>
</listitem></varlistentry>
<varlistentry><term><option>poa</option></term><listitem><para>継承を <literal>org.omg.CORBA_2_3.portable.ObjectImpl</literal> から <literal>org.omg.PortableServer.Servant.</literal> へ変更します。</para>
<para>Portable Object Adapter (<acronym>POA</acronym>) の <literal>PortableServer</literal> モジュールは、ネイティブの <literal>Servant</literal> 型を定義します。Java プログラミング言語では、<literal>Servant</literal> 型は、Java の <literal>org.omg.PortableServer.Servant</literal> クラスにマップされます。これはすべての <acronym>POA</acronym> サーバント実装の基底クラスとして機能し、アプリケーション開発者が呼び出せる多数のメソッドを提供します。また、<acronym>POA</acronym> 自体が呼び出したり、サーバント動作を制御するためにユーザが上書きしたりできるメソッドも提供します。CORBA V 2.3.1 の「OMG IDL to Java Language Mapping Specification (ptc/00-01-08.pdf)」に基づいています。</para>
</listitem></varlistentry>
</variablelist></para>
</listitem></varlistentry>
<varlistentry><term remap="20"><option>J</option></term><listitem><para><option>D</option> オプションと一緒に使用して、これに続くオプションを java インタプリタに渡します。<option>J</option> と <option>D</option> の間に空白は入れません。</para>
</listitem></varlistentry>
<varlistentry><term remap="20"><option>keepgenerated</option></term><listitem><para>スタブおよびスケルトン用に生成された <literal>.java</literal> ソースファイルを保持します。<option>d</option> オプションが指定されていれば、ソースファイルは <literal>.class</literal> ファイルと同じディレクトリに出力されます。</para>
</listitem></varlistentry>
<varlistentry><term remap="20"><option>nowarn</option></term><listitem><para>警告を出力しません。つまり、コンパイラは警告メッセージをいっさい出力しません。</para>
</listitem></varlistentry>
<varlistentry><term remap="20"><option>sourcepath</option> <replaceable>path</replaceable></term><listitem><para>ユーザのソースファイルを検索する場所を指定します。</para>
</listitem></varlistentry>
<varlistentry><term remap="20"><option>vcompat</option></term><listitem><para>JDK 1.1 と 1.2 のスタブプロトコルバージョンと互換性のあるスタブとスケルトンを作成します (デフォルト)。</para>
</listitem></varlistentry>
<varlistentry><term remap="20"><option>verbose</option></term><listitem><para>コンパイラとリンカに詳細情報を出力させます。具体的には、コンパイルされるクラスファイル、およびロードされるクラスファイルに関する情報が出力されます。</para>
</listitem></varlistentry>
<varlistentry><term remap="20"><option>v1.1</option></term><listitem><para>JDK 1.1 スタブプロトコルバージョンのスタブとスケルトンを作成します。</para>
</listitem></varlistentry>
<varlistentry><term remap="20"><option>v1.2</option></term><listitem><para>JDK 1.2 スタブプロトコルバージョンのスタブだけを作成します。</para>
</listitem></varlistentry>
</variablelist>
</refsect1>
<refsect1><title>&envr-tt;</title>
<variablelist termlength="medium"><varlistentry><term remap="20"><envar>CLASSPATH</envar></term><listitem><para>ユーザ定義クラスへのパスをシステムに通知するために使用します。複数のディレクトリを指定する場合はコロンで区切ります。以下に例を示します。<literal>.:/usr/local/java/classes</literal></para>
</listitem></varlistentry>
</variablelist>
</refsect1>
<refsect1><title>&attr-tt;</title>
<para>次の属性については、<citerefentry><refentrytitle>attributes</refentrytitle><manvolnum>5</manvolnum></citerefentry> のマニュアルページを参照してください。</para>
<informaltable frame="all" orient="port"><tgroup cols="2" colsep="1" rowsep="1"><colspec colnum="1" colname="col1" colwidth="1*" colsep="1" align="left"><colspec colnum="2" colname="col2" colwidth="1*" align="left"><thead><row><entry colname="col1" align="center" valign="top">属性タイプ</entry><entry colname="col2" align="center" valign="top">属性値</entry></row></thead><tbody><row><entry>使用条件</entry><entry>SUNWj3dev</entry></row></tbody></tgroup></informaltable>
</refsect1>
<refsect1><title>&also-tt;</title>
<para><citerefentry><refentrytitle>javac</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>attributes</refentrytitle><manvolnum>5</manvolnum></citerefentry></para>
<para>次については、<literal>java.sun.com</literal> を参照または検索してください。</para>
<variablelist termlength="wholeline"><varlistentry><term remap="10"><citetitle>クラスパスの設定 (Setting the Classpath) :</citetitle></term><listitem><comment><ulink 
url="http://java.sun.com/j2se/1.4/ja/docs/tooldocs/solaris/classpath.html">http://java.sun.com/j2se/1.4/ja/docs/tooldocs/solaris/classpath.html</ulink></comment>
<para><ulink url="http://java.sun.com/j2se/1.4/docs/tooldocs/solaris/classpath.html">http://java.sun.com/j2se/1.4/docs/tooldocs/solaris/classpath.html</ulink> : 英語版</para>
</listitem></varlistentry>
</variablelist>
</refsect1>
<!--+ 07/27/00 08:35:39
    | tagMorph:  $Id: tagMorph-engine 1.54 1998/01/19 05:44:48 $
    | tagMorph library:  $Id: libtagMorph.a 1.50 1998/01/19 22:02:51 $
    | sunman-to-solbook 1.17
    +-->
</refentry>
<?Pub *0000012529 0>
