rmic.1 13.7 KB
Newer Older
T
tbell 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
." Copyright 2004-2006 Sun Microsystems, Inc.  All Rights Reserved.
." DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
."
." This code is free software; you can redistribute it and/or modify it
." under the terms of the GNU General Public License version 2 only, as
." published by the Free Software Foundation.
."
." This code is distributed in the hope that it will be useful, but WITHOUT
." ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
." FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
." version 2 for more details (a copy is included in the LICENSE file that
." accompanied this code).
."
." You should have received a copy of the GNU General Public License version
." 2 along with this work; if not, write to the Free Software Foundation,
." Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
."
." Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
." CA 95054 USA or visit www.sun.com if you need additional information or
." have any questions.
."
.TH rmic 1 "04 May 2009"
." Generated from HTML by html2man (author: Eric Armstrong)

.LP
.SH "名前"
rmic \- Java RMI コンパイラ
.LP
.RS 3

.LP
.LP
\f3rmic\fP によって、JRMP または IIOP プロトコルを使用するリモートオブジェクトのスタブ、スケルトン、および Tie クラスが生成されます。また、OMG IDL も生成されます。
.LP
.RE
.SH "形式"
.LP

.LP
.nf
\f3
.fl
rmic [ \fP\f3options\fP\f3 ] \fP\f4package\-qualified\-class\-name(s)\fP\f3
.fl
\fP
.fi

.LP
.SH "説明"
.LP

.LP
.LP
\f3rmic\fP コンパイラによって、リモートオブジェクトの、スタブ、スケルトンクラスファイル (JRMP プロトコル)、およびスタブと Tie クラスファイルの組み合わせ (IIOP プロトコル) が生成されます。リモートオブジェクトの実装クラスであるこれらのクラスファイルは、Java プログラミング言語のクラスをコンパイルしたときに生成されます。リモート実装クラスは、\f2java.rmi.Remote\fP インタフェースを実装するクラスです。\f3rmic\fP コマンドでのクラス名は、そのクラスが \f3javac\fP コマンドでコンパイルが成功していて、かつ完全なパッケージ名が指定されている必要があります。たとえば、クラスファイル名 \f2HelloImpl\fP で \f3rmic\fP を実行するには、次のようにします。
.LP
.nf
\f3
.fl
D
duke 已提交
59
rmic hello.HelloImpl
T
tbell 已提交
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
.fl
\fP
.fi

.LP
.LP
\f2HelloImpl_Stub.class\fP ファイルが、クラスのパッケージ名が付いた \f2hello\fP サブディレクトリに作成されます。
.LP
.LP
リモートオブジェクトの「スケルトン」は JRMP プロトコルサーバー側のエンティティーで、実際のリモートオブジェクト実装を呼び出すメソッドを含みます。
.LP
.LP
リモートオブジェクトの「Tie」は、スケルトンと同様にサーバー側のエンティティーですが、IIOP プロトコルを使ってクライアントと通信します。
.LP
.LP
「スタブ」とは、リモートオブジェクトのクライアント側での代理です。 スタブは、リモートオブジェクトのメソッド呼び出しを、実物のリモートオブジェクトが常駐するサーバーと通信する役割を持ちます。したがって、クライアントのリモートオブジェクトへの参照は、実際はローカルスタブへの参照となります。
.LP
.LP
デフォルトで \f3rmic\fP では、1.2 JRMP スタブプロトコルバージョンだけを使用するスタブクラスを生成します。 これは、\f2\-v1.2\fP オプションを指定した場合と同じ動作です。(5.0 以前では \f2\-vcompat\fP オプションがデフォルトであったことに注意。) IIOP プロトコル用のスタブおよび Tie クラスを生成するには \f2\-iiop\fP オプションを使用します。
.LP
.LP
スタブはリモートインタフェースだけを実装し、リモートオブジェクトが実装する局所インタフェースは実装していません。JRMP スタブはリモートオブジェクト自体が実装するリモートインタフェースと同じものを実装しているので、クライアントは、キャストや型チェックに Java プログラミング言語に組み込まれた演算子を使用することができます。IIOP の場合は、\f2PortableRemoteObject.narrow\fP メソッドを使わなければなりません。
.LP
.SH "オプション"
.LP

.LP
.RS 3
.TP 3
\-bootclasspath path 
ブートストラップクラスファイルの位置をオーバーライドします。 
.TP 3
\-classpath path 
\f3rmic\fP がクラスを探すためのパスを指定します。このオプションは、デフォルトや CLASSPATH 環境変数設定を上書きします。ディレクトリはコロンで分割します。したがって、\f2path\fP の一般形式は次のようになります。 
.RS 3

.LP
.nf
\f3
.fl
.:<your_path>
.fl
\fP
.fi
D
duke 已提交
104
.RE
T
tbell 已提交
105 106 107
例を示します。 
.RS 3

D
duke 已提交
108
.LP
T
tbell 已提交
109 110 111 112 113 114 115
.nf
\f3
.fl
.:/usr/local/java/classes
.fl
\fP
.fi
D
duke 已提交
116
.RE
T
tbell 已提交
117 118 119 120 121
.TP 3
\-d directory 
生成されたクラス階層の出力先ディレクトリのルートを指定します。このオプションを使えば、スタブ、スケルトン、および Tie ファイルを格納するディレクトリを指定できます。たとえば、次のようにして使います。 
.RS 3

D
duke 已提交
122 123
.LP
.nf
T
tbell 已提交
124 125 126 127 128
\f3
.fl
% rmic \-d /java/classes foo.MyClass
.fl
\fP
D
duke 已提交
129 130
.fi
.RE
T
tbell 已提交
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
\f2MyClass\fP から取得したスタブとスケルトンクラスを \f2/java/classes/foo\fP ディレクトリに置きます。\f2\-d\fP オプションが指定されていない場合は、\f2「\-d\ .」\fPが指定されていると見なされます。ターゲットクラスのパッケージ階層が現在のディレクトリに作成され、スタブ、Tie、およびスケルトンファイルがそのディレクトリに格納されます。(以前のバージョンの \f3rmic\fP では、\f2\-d\fP が指定されていない場合は、パッケージ階層は作成されず、出力ファイルはすべて現在のディレクトリに直接格納されていた)。
.br
\  
.TP 3
\-extdirs path 
インストール型拡張機能の位置をオーバーライドします。 
.TP 3
\-g 
局所変数を含むすべてのデバッグ情報を生成します。デフォルトでは、行番号情報だけが生成されます。 
.LP
.TP 3
\-idl 
\f2rmic\fP によって、指定したクラスおよび参照されたクラスの OMG IDL が生成されます。IDL では、プログラミング言語に依存せずに、宣言するだけでオブジェクトの API を指定することができます。IDL は、メソッドおよびデータの仕様として使用します。 CORBA バインディングを提供する任意の言語で、メソッドおよびデータの作成および呼び出しを行うことができます。これらの言語には、Java および C++ が含まれています。詳細は、
.na
\f2Java Language to IDL Mapping\fP @
.fi
http://www.omg.org/technology/documents/formal/java_language_mapping_to_omg_idl.htm (OMG) を参照してください。 
.LP
\f2\-idl\fP オプションを使うときは、ほかのオプションも指定できます。  
.RS 3
.TP 3
\-always または \-alwaysgenerate 
既存のスタブ、Tie、および IDL が入力クラスより新しいときでも、強制的に生成し直します。 
.TP 3
\-factory 
生成された IDL で factory キーワードを使います。 
.TP 3
\-idlModule\  fromJavaPackage[.class]\  toIDLModule 
IDLEntity パッケージのマップを指定します。例を示します。 \f2\-idlModule foo.bar my::real::idlmod\fP 
.TP 3
\-idlFile\  fromJavaPackage[.class]\  toIDLFile 
IDLEntity ファイルのマップを指定します。例を示します。 \f2\-idlFile test.pkg.X TEST16.idl\fP\  
.RE
.LP
.TP 3
\-iiop 
\f2rmic\fP によって、JRMP のスタブとスケルトンクラスの代わりに、IIOP のスタブと Tie クラスが生成されます。スタブクラスは、リモートオブジェクトのローカルプロキシで、クライアントからサーバーに呼び出しを送信するときに使われます。各リモートインタフェースにはスタブクラスが必要です。 スタブクラスによってリモートインタフェースが実装されます。クライアントでリモートオブジェクトを参照するときは、実際にはスタブを参照することになります。タイクラスは、サーバー側で着呼を処理し、その呼び出しを適切な実装クラスにディスパッチするときに使われます。各実装クラスには、タイクラスが必要です。 
.LP
\f2\-iiop\fP を使って \f2rmic\fP を呼び出すと、次の命名規約に準拠したスタブと Tie が生成されます。 
.RS 3

.LP
D
duke 已提交
173
.nf
T
tbell 已提交
174 175
\f3
.fl
D
duke 已提交
176
_<implementationName>_stub.class
T
tbell 已提交
177 178 179 180 181
.fl
\fP
.br
\f3
.fl
D
duke 已提交
182
_<interfaceName>_tie.class
T
tbell 已提交
183 184
.fl
\fP
D
duke 已提交
185 186
.fi
.RE
T
tbell 已提交
187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252
.LP
\f2\-iiop\fP オプションを使うときは、ほかのオプションも指定できます。  
.RS 3
.TP 3
\-always または \-alwaysgenerate 
既存のスタブ、Tie、および IDL が入力クラスより新しいときでも、強制的に生成し直します。 
.TP 3
\-nolocalstubs 
同じプロセスのクライアントとサーバーに対して最適化されたスタブを作成しません。 
.TP 3
\-noValueMethods 
\f2\-idl\fP オプションとともに使われなければなりません。発行された IDL に、\f2valuetype\fP メソッドおよび初期化子を追加しません。このメソッドおよび初期化子は、\f2valuetype\fP の場合はオプションです。 \f2\-idl\fP オプションを使うときは、 \f2\-noValueMethods\fP オプションを指定しない限り生成されます。 
.TP 3
\-poa 
継承が \f2org.omg.CORBA_2_3.portable.ObjectImpl\fP から \f2org.omg.PortableServer.Servant\fP に変わります。 
.LP
.na
\f2Portable Object Adapter\fP @
.fi
http://java.sun.com/javase/6/docs/technotes/guides/idl/POA.html (POA) の \f2PortableServer\fP モジュールは、ネイティブの \f2Servant\fP 型を定義します。Java プログラミング言語では、\f2Servant\fP 型は、Java の \f2org.omg.PortableServer.Servant\fP クラスにマッピングされています。これはあらゆる POA サーバント実装の基底クラスとなり多数のメソッドを提供します。 これらのメソッドはアプリケーションプログラマが呼び出すだけではなく、POA 自身からも呼び出され、場合によってはサーバントの動作を制御するためにユーザーがオーバーライドすることもあります。OMG IDL to Java Language Mapping Specification、CORBA V 2.3.1 ptc/00\-01\-08.pdf に準拠しています。  
.RE
.TP 3
\-J 
\f2\-J\fP の後ろに続くオプションを \f2java\fP インタプリタに引き渡します。 \f2java\fP オプションと組み合わせて使います (\f2\-J\fP と \f2java\fP オプションの間にスペースは入れない)。 
.TP 3
\-keep または \-keepgenerated 
スタブ、スケルトン、または Tie クラスのための \f2.java\fP ソースファイルを \f2.class\fP ファイルと同じディレクトリに残します。 
.TP 3
\-nowarn 
警告をオフにします。このオプションを指定すると、コンパイラは警告を表示しません。 
.LP
.TP 3
\-vcompat 
1.1 と 1.2 の両方の JRMP スタブプロトコルバージョンと互換性のあるスタブおよびスケルトンクラスを作成します。(5.0 以前のリリースではこのオプションはデフォルト。)生成されたスタブクラスは、JDK 1.1 仮想マシンにロードされると 1.1 スタブプロトコルバージョンを使用し、JDK 1.2 以降の仮想マシンにロードされると 1.2 スタブプロトコルバージョンを使用します。生成されたスケルトンクラスでは、1.1 と 1.2 の両方のスタブプロトコルバージョンをサポートします。生成されたクラスは両方の操作モードをサポートするために、サイズが大きくなります。 
.TP 3
\-verbose 
コンパイラやリンカーが、コンパイルされているクラスやロードされているクラスファイルについてのメッセージを表示するようにします。 
.LP
.TP 3
\-v1.1 
1.1 JRMP スタブプロトコルバージョンのみのスタブおよびスケルトンクラスを生成します。このオプションが使用できるのは、JDK 1.1 から \f3rmic\fP ツールで生成され、アップグレードできない (さらにダイナミッククラスローディングを使用していない) 、既存の静的配備されたスタブクラスに対し、直列化互換性のあるスタブクラスを生成場合だけです。 
.LP
.TP 3
\-v1.2 
(デフォルト) 1.2 JRMP スタブプロトコルバージョンのみのスタブクラスを生成します。スケルトンクラスは 1.2 スタブプロトコルバージョンで使用できないため、このオプションではスケルトンクラスは生成されません。生成されたスタブクラスは、JDK 1.1 仮想マシンにロードされても動作しません。 
.RE

.LP
.SH "環境変数"
.LP

.LP
.RS 3
.TP 3
CLASSPATH 
ユーザー定義クラスへのパスをシステムに指定します。ディレクトリはコロンで分割します。次に例を示します。 
.RS 3

.LP
.nf
\f3
.fl
.:/usr/local/java/classes
.fl
\fP
.fi
D
duke 已提交
253
.RE
T
tbell 已提交
254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270
.RE

.LP
.SH "関連項目"
.LP

.LP
.LP
java(1)、javac(1)、
.na
\f2CLASSPATH\fP @
.fi
http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpath
.LP

.LP