idlj.1 20.1 KB
Newer Older
M
mfang 已提交
1
'\" t
2
.\" Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
M
mfang 已提交
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
.\" 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
.\" or visit www.oracle.com if you need additional information or have any
.\" questions.
.\"
23 24 25 26 27 28
.\" Title: idlj
.\" Language: Japanese
.\" Date: 2013年11月21日
.\" SectDesc: Java IDLおよびRMI-IIOPツール
.\" Software: JDK 8
.\" Arch: 汎用
29 30
.\" Part Number: E58103-01
.\" Doc ID: JSSON
31 32
.\"
.if n .pl 99999
M
mfang 已提交
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
.TH "idlj" "1" "2013年11月21日" "JDK 8" "Java IDLおよびRMI-IIOPツール"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
53
.SH "名前"
M
mfang 已提交
54 55 56 57 58 59 60
idlj \- 指定されたインタフェース定義言語(IDL)ファイルに対してJavaバインディングを生成します。
.SH "概要"
.sp
.if n \{\
.RS 4
.\}
.nf
61
\fBidlj\fR [ \fIoptions\fR ] \fIidlfile\fR
M
mfang 已提交
62 63 64 65 66 67 68
.fi
.if n \{\
.RE
.\}
.PP
\fIoptions\fR
.RS 4
69
コマンド行オプション。オプションを参照してください。optionsの順番は任意ですが、\fBidlfile\fRよりも前に指定する必要があります。
M
mfang 已提交
70 71 72 73 74 75
.RE
.PP
\fIidlfile\fR
.RS 4
インタフェース定義言語(IDL)による定義が含まれるファイルの名前。
.RE
76
.SH "説明"
M
mfang 已提交
77 78 79 80
.PP
IDL\-to\-Javaコンパイラは、指定されたIDLファイルに対してJavaバインディングを生成します。バインディングの詳細は、http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/idl/mapping/jidlMapping\&.htmlにある
Java IDL: Java言語マッピングへのIDLを参照してください。
.PP
81
IDL\-to\-Javaコンパイラの以前のリリースの中には、\fBidltojava\fRという名前だったものがあります。
M
mfang 已提交
82 83
.SS "クライアント・バインディングおよびサーバー・バインディングの発行"
.PP
84
次の\fBidlj\fRコマンドは、クライアント側バインディングを含む\fBMy\&.idl\fRという名前のIDLファイルを生成します。
M
mfang 已提交
85 86 87 88 89
.sp
.if n \{\
.RS 4
.\}
.nf
90 91
\fBidlj My\&.idl\fR
 
M
mfang 已提交
92 93 94 95 96 97 98 99 100 101
.fi
.if n \{\
.RE
.\}
.PP
前の構文は次と同等です。
.sp
.if n \{\
.RS 4
.\}
102
.nf
103 104
\fBidlj \-fclient My\&.idl\fR
 
105
.fi
M
mfang 已提交
106 107 108 109 110 111 112 113 114
.if n \{\
.RE
.\}
.PP
次の例では、サーバー側バインディングを生成し、クライアント側バインディングおよびスケルトンを含めており、これらはすべて、POA (継承モデル)です。
.sp
.if n \{\
.RS 4
.\}
115
.nf
116 117
\fBidlg \-fserver My\&.idl\fR
 
118
.fi
M
mfang 已提交
119 120 121 122 123 124 125 126 127 128
.if n \{\
.RE
.\}
.PP
クライアント側とサーバー側の両方のバインディングを生成する場合は、次のコマンド(どれも等価)のうちの1つを使用します。
.sp
.if n \{\
.RS 4
.\}
.nf
129 130 131
\fBidlj \-fclient \-fserver My\&.idl\fR
\fBidlj \-fall My\&.idl\fR
 
M
mfang 已提交
132 133 134 135 136 137 138
.fi
.if n \{\
.RE
.\}
.PP
サーバー側で可能なモデルは2つあります。移殖可能サーバント継承モデルとTieモデルです。Tie委譲モデルを参照してください。
.PP
139 140
\fB移殖可能サーバント継承モデル\fR. デフォルトのサーバー側のモデルは、移殖可能サーバント継承モデルです。\fBMy\&.idl\fR内で\fBMy\fRインタフェースが定義されている場合は、\fBMyPOA\&.java\fRというファイルが生成されます。\fBMy\fRインタフェースの実装を提供する必要があり、\fBMy\fRインタフェースは\fBMyPOA\fRクラスから継承する必要があります。\fBMyPOA\&.java\fRは、http://docs\&.oracle\&.com/javase/8/docs/api/org/omg/PortableServer/Servant\&.htmlにある
\fBorg\&.omg\&.PortableServer\&.Servant\fRクラスを拡張するストリームベースのスケルトンです。
M
mfang 已提交
141
.PP
142
\fBMy\fRインタフェースは、スケルトンが実装するIDLインタフェースに関連付けられている\fBcallHandler\fRインタフェースと操作インタフェースを実装します。
M
mfang 已提交
143
.PP
144
ポータブル・オブジェクト・アダプタ(POA)の\fBPortableServer\fRモジュールは、ネイティブの\fBServant\fR型を定義します。http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/idl/POA\&.htmlにある
M
mfang 已提交
145 146
ポータブル・オブジェクト・アダプタ(POA)を参照してください。
.PP
147
Javaプログラミング言語では、\fBServant\fR型はJavaの\fBorg\&.omg\&.PortableServer\&.Servant\fRクラスにマップされます。これは、すべてのPOAサーバント実装のベース・クラスとして機能し、アプリケーション・プログラマが呼び出すことのできるいくつかのメソッド、およびPOAによって呼び出され、サーバントの動作を制御するためにユーザーがオーバーライドできるメソッドを提供します。
M
mfang 已提交
148
.PP
149
継承モデルのもう1つのオプションは、\fB\-oldImplBase\fRフラグを使用して、Java SE 1\&.4より前のリリースのJavaプログラミング言語と互換性のあるサーバー側バインディングを生成することです。\-\fBoldImplBase\fRフラグは非標準で、これらのAPIは非推奨です。このフラグを使用するのは、Java SE 1\&.3で記述された既存のサーバーとの互換性が必要な場合のみです。その場合、既存のmakeファイルを変更して、\fB\-oldImplBase\fRフラグを\fBidlj\fRコンパイラに追加する必要があります。それ以外の場合、POAベースのサーバー側マッピングが生成されます。後方互換性のあるサーバー側バインディングを生成するには、次を実行します。
M
mfang 已提交
150 151 152 153
.sp
.if n \{\
.RS 4
.\}
154
.nf
155 156 157
\fBidlj \-fclient \-fserver \-oldImplBase My\&.idl\fR
\fBidlj \-fall \-oldImplBase My\&.idl\fR
 
158
.fi
M
mfang 已提交
159 160 161 162
.if n \{\
.RE
.\}
.PP
163
\fBMy\&.idl\fR内で\fBMy\fRインタフェースが定義されている場合は、\fB_MyImplBase\&.java\fRというファイルが生成されます。\fBMy\fRインタフェースの実装を提供する必要があり、\fBMy\fRインタフェースは\fB_MyImplBase\fRクラスから継承する必要があります。
M
mfang 已提交
164
.PP
165
\fBTie委譲モデル\fR. もう1つのサーバー側モデルは、Tieモデルと呼ばれるものです。このサーバー側モデルは、委譲モデルです。Tieとスケルトンを同時に生成することはできないため、それらは別々に生成する必要があります。次のコマンドによって、Tieモデル用のバインディングが生成されます。
M
mfang 已提交
166 167 168 169
.sp
.if n \{\
.RS 4
.\}
D
duke 已提交
170
.nf
171 172 173
\fBidlj \-fall My\&.idl\fR
\fBidlj \-fallTIE My\&.idl\fR
 
D
duke 已提交
174
.fi
M
mfang 已提交
175 176 177 178
.if n \{\
.RE
.\}
.PP
179
\fBMy\fRインタフェースの場合、2番目のコマンドにより、\fBMyPOATie\&.java\fRが生成されます。\fBMyPOATie\fRクラスへのコンストラクタは、delegateを取ります。この例では、デフォルトのPOAモデルを使用しているため、コンストラクタにもPOAが必要です。delegateに対して実装を提供する必要がありますが、この実装は\fBMyOperations\fRインタフェースから継承する必要があるのみで、その他のクラスから継承する必要はありません。これをORBと一緒に使用するには、たとえば次のように\fBMyPOATie\fRクラス内で実装をラップする必要があります。
M
mfang 已提交
180 181 182 183 184
.sp
.if n \{\
.RS 4
.\}
.nf
185 186 187 188 189 190 191 192 193 194 195 196 197 198 199
\fBORB orb = ORB\&.init(args, System\&.getProperties());\fR
\fB \fR
\fB// Get reference to rootpoa & activate the POAManager\fR
\fBPOA rootpoa = (POA)orb\&.resolve_initial_references("RootPOA");\fR
\fBrootpoa\&.the_POAManager()\&.activate();\fR
\fB \fR
\fB// create servant and register it with the ORB\fR
\fBMyServant myDelegate = new MyServant();\fR
\fBmyDelegate\&.setORB(orb); \fR
\fB \fR
\fB// create a tie, with servant being the delegate\&.\fR
\fBMyPOATie tie = new MyPOATie(myDelegate, rootpoa);\fR
\fB \fR
\fB// obtain the objectRef for the tie\fR
\fBMy ref = tie\&._this(orb);\fR
M
mfang 已提交
200
 
201
.fi
M
mfang 已提交
202 203 204 205 206 207 208 209 210 211 212 213
.if n \{\
.RE
.\}
.PP
他の実装から継承する必要がある場合、標準の継承モデルではなくTieモデルを使用することもできます。Javaの場合は、インタフェースの継承の個数に制限はありませんが、クラスの継承に使用できるスロットは1つのみです。継承モデルを使用した場合は、そのスロットが占有されます。Tieモデルを使用すると、そのスロットが使用されず、ユーザーが独自の目的で使用できます。この方法には、間接性のレベルが1つ導入されるという短所があります。メソッドを呼び出すときに、余分なメソッド呼出しが1回発生します。
.PP
サーバー側の生成の場合、Java SE 1\&.4より前のバージョンのJava言語にマッピングするIDLのバージョンと互換性のある、Tieモデルのバインディングです。
.sp
.if n \{\
.RS 4
.\}
.nf
214 215 216
\fBidlj \-oldImplBase \-fall My\&.idl\fR
\fBidlj \-oldImplBase \-fallTIE My\&.idl\fR
 
M
mfang 已提交
217 218 219 220 221
.fi
.if n \{\
.RE
.\}
.PP
222
\fBMy\fRインタフェースの場合、これにより、\fBMy_Tie\&.java\fRが生成されます。\fBMy_Tie\fRクラスへのコンストラクタは、\fBimpl\fRオブジェクトを取ります。\fBimpl\fRに対して実装を提供する必要がありますが、その実装は\fBHelloOperations\fRインタフェースから継承する必要があるのみで、その他のクラスから継承する必要はありません。しかし、これをORBと一緒に使用するには、たとえば次のように\fBMy_Tie\fR内で実装をラップする必要があります。
M
mfang 已提交
223 224 225 226 227
.sp
.if n \{\
.RS 4
.\}
.nf
228
\fBORB orb = ORB\&.init(args, System\&.getProperties());\fR
M
mfang 已提交
229
 
230 231 232 233 234 235 236 237 238
\fB// create servant and register it with the ORB\fR
\fBMyServant myDelegate = new MyServant();\fR
\fBmyDelegate\&.setORB(orb); \fR
\fB \fR
\fB// create a tie, with servant being the delegate\&.\fR
\fBMyPOATie tie = new MyPOATie(myDelegate);\fR
\fB \fR
\fB// obtain the objectRef for the tie\fR
\fBMy ref = tie\&._this(orb);\fR
M
mfang 已提交
239
 
240
.fi
M
mfang 已提交
241 242 243 244 245
.if n \{\
.RE
.\}
.SS "発行されたファイルの代替位置の指定"
.PP
246
発行されたファイルを現在のディレクトリ以外のディレクトリに置くには、\fBi\fR\fBdlj \-td /altdir My\&.idl\fRのコマンドでコンパイラを呼び出します。
M
mfang 已提交
247 248
.PP

249
\fBMy\fRインタフェースの場合、バインディングは、\fB\&./My\&.java\fRではなく、\fB/altdir/My\&.java\fRなどに発行されます。
M
mfang 已提交
250 251
.SS "インクルード・ファイルの代替位置の指定"
.PP
252
\fBMy\&.idl\fRファイルが別の\fBidl\fRファイルである\fBMyOther\&.idl\fRをインクルードする場合、コンパイラでは、\fBMyOther\&.idl\fRファイルがローカル・ディレクトリに存在することを前提としています。たとえば、それが\fB/includes\fRにある場合は、次のようなコマンドでコンパイラを呼び出します。
M
mfang 已提交
253 254 255 256 257
.sp
.if n \{\
.RS 4
.\}
.nf
258 259
\fBidlj \-i /includes My\&.idl\fR
 
M
mfang 已提交
260 261 262 263 264
.fi
.if n \{\
.RE
.\}
.PP
265
たとえば、\fB/moreIncludes\fRにある\fBAnother\&.idl\fRも\fBMy\&.idl\fRにインクルードされているのであれば、次のようなコマンドでコンパイラを呼び出します。
M
mfang 已提交
266 267 268 269
.sp
.if n \{\
.RS 4
.\}
270
.nf
271 272
\fBidlj \-i /includes \-i /moreIncludes My\&.idl\fR
 
273
.fi
M
mfang 已提交
274 275 276 277
.if n \{\
.RE
.\}
.PP
278
このような形式の\fBinclude\fRは長くなるため、インクルード・ファイルを検索する場所をコンパイラに指示するための別の方法が用意されています。この方法は、環境変数の考え方と似ています。\fBCLASSPATH\fR変数に一覧表示されているディレクトリ内にidl\&.configという名前のファイルを作成します。その\fBidl\&.config\fRの中に、次のような形式の行を入れます。
M
mfang 已提交
279 280 281 282
.sp
.if n \{\
.RS 4
.\}
283
.nf
284 285
\fBincludes=/includes;/moreIncludes\fR
 
D
duke 已提交
286
.fi
M
mfang 已提交
287 288 289 290
.if n \{\
.RE
.\}
.PP
291
コンパイラは、このファイルを検索し、インクルード・リストを読み込みます。この例では、ディレクトリの間の区切り文字はセミコロン(;)になっています。この区切り文字は、プラットフォームによって異なります。Windowsプラットフォームではセミコロンを使用し、Solaris、LinuxおよびOS Xプラットフォームではコロンを使用します。
M
mfang 已提交
292 293
.SS "インクルード・ファイルに対するバインディングの発行"
.PP
294
デフォルトでは、コマンド行に指定した\fBidl\fRファイルで定義されているインタフェースや構造体などについてのみ、Javaバインディングが生成されます。インクルードされたファイルで定義されている型については生成されません。たとえば、次の2つの\fBidl\fRファイルについて考えてみます。
M
mfang 已提交
295 296 297 298 299
.sp
.if n \{\
.RS 4
.\}
.nf
300 301 302 303 304 305 306 307 308 309 310 311
\fBMy\&.idl file:\fR
\fB \fR
\fB#include <MyOther\&.idl>\fR
\fBinterface My\fR
\fB{\fR
\fB};\fR
\fB \fR
\fBMyOther\&.idl file:\fR
\fB \fR
\fBinterface MyOther\fR
\fB{\fR
\fB};\fR
M
mfang 已提交
312
 
313
.fi
M
mfang 已提交
314 315 316 317
.if n \{\
.RE
.\}
.PP
318
デフォルトのルールに関して警告があります。グローバル・スコープに表示される\fB#include\fR文は、前述のとおりに処理されます。これらの\fB#include\fR文は、インポート文と見なすことができます。囲まれたスコープ内に表示される\fB#include\fR文は、本当の意味での\fB#include\fR文として処理されます。つまり、インクルードされたファイルにあるコードが、元のファイルにそのまま表示されているかのように処理され、それに対してJavaバインディングが発行されます。次はその例です。
M
mfang 已提交
319 320 321 322 323
.sp
.if n \{\
.RS 4
.\}
.nf
324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340
\fBMy\&.idl file:\fR
\fB \fR
\fB#include <MyOther\&.idl>\fR
\fBinterface My\fR
\fB{\fR
\fB  #include <Embedded\&.idl>\fR
\fB};\fR
\fB \fR
\fBMyOther\&.idl file:\fR
\fB \fR
\fBinterface MyOther\fR
\fB{\fR
\fB};\fR
\fB \fR
\fBEmbedded\&.idl\fR
\fB \fR
\fBenum E {one, two, three};\fR
M
mfang 已提交
341
 
342
.fi
M
mfang 已提交
343 344 345 346
.if n \{\
.RE
.\}
.PP
347
\fB idlj My\&.idl \fRを実行して、Javaファイルの次のリストを生成します。インポート文とみなされる\fB#include\fRに定義されていたため、\fBMyOther\&.java\fRは生成されませんでした。ただし、本当の意味での\fB#include\fRで定義されていたため、\fBE\&.java\fRは生成されました。\fBEmbedded\&.idl\fRファイルが\fBMy\fRインタフェースのスコープ内にインクルードされているため、\fBMy\fRのスコープ内(つまり、\fBMyPackage\fR内)に生成されています。\fB\-emitAll\fRフラグを使用した場合、インクルードされたすべてのファイルにあるすべての型が発行されます。
M
mfang 已提交
348 349 350 351 352
.sp
.if n \{\
.RS 4
.\}
.nf
353 354 355 356 357 358 359 360 361
\fB\&./MyHolder\&.java\fR
\fB\&./MyHelper\&.java\fR
\fB\&./_MyStub\&.java\fR
\fB\&./MyPackage\fR
\fB\&./MyPackage/EHolder\&.java\fR
\fB\&./MyPackage/EHelper\&.java\fR
\fB\&./MyPackage/E\&.java\fR
\fB\&./My\&.java\fR
 
M
mfang 已提交
362 363 364 365 366 367 368 369 370 371 372 373
.fi
.if n \{\
.RE
.\}
.SS "パッケージの接頭辞の挿入"
.PP
ABCという名前の会社のために作業していて、次のようなIDLファイルを構築したとしましょう。
.sp
.if n \{\
.RS 4
.\}
.nf
374 375 376 377 378 379 380
\fBWidgets\&.idl file:\fR
\fB \fR
\fBmodule Widgets\fR
\fB{\fR
\fB  interface W1 {\&.\&.\&.};\fR
\fB  interface W2 {\&.\&.\&.};\fR
\fB};\fR
M
mfang 已提交
381
 
382
.fi
M
mfang 已提交
383 384 385 386
.if n \{\
.RE
.\}
.PP
387
IDL\-to\-Javaコンパイラを介してこのファイルを実行した場合、W1およびW2に対するJavaバインディングは、\fBWidgets\fRパッケージ内に格納されます。業界の慣例によると、会社のパッケージは、\fBcom\&.<company name>\fRという名前のパッケージ内に置くことになっています。この慣例に従うには、パッケージ名を\fBcom\&.abc\&.Widgets\fRにする必要があります。このパッケージ接頭辞をWidgetsモジュールに付加するには、次のコマンドを実行します。
M
mfang 已提交
388 389 390 391
.sp
.if n \{\
.RS 4
.\}
392
.nf
393 394
\fBidlj \-pkgPrefix Widgets com\&.abc Widgets\&.idl\fR
 
395
.fi
M
mfang 已提交
396 397 398 399
.if n \{\
.RE
.\}
.PP
400
Widgets\&.idlをインクルードしているIDLファイルがある場合は、そのコマンドにも\fB\-pkgPrefix\fRフラグが必要です。このフラグを指定しないと、そのIDLファイルは、\fBcom\&.abc\&.Widgets\fRパッケージではなく、\fBWidgets\fRパッケージを検索することになります。
M
mfang 已提交
401
.PP
402
接頭辞が必要なパッケージがいくつもある場合は、前述のidl\&.configファイルで接頭辞を指定するのが簡単です。各パッケージの接頭辞行は、\fBPkgPrefix\&.<type>=<prefix>\fRの形式にする必要があります。前述の例の行では、\fBPkgPrefix\&.Widgets=com\&.abc\fRになります。このオプションは、リポジトリIDには影響しません。
M
mfang 已提交
403 404
.SS "コンパイル前のシンボルの定義"
.PP
405
コンパイル用のシンボルがIDLファイル内で定義されていない場合は、そのシンボルを定義する必要があります。これは、たとえば、バインディング内にデバッグ・コードを組み入れるときに使用します。コマンド\fBidlj \-d MYDEF My\&.idl \fRは、My\&.idl内に行\fB#define MYDEF\fRを配置した場合と同等になります。
M
mfang 已提交
406 407
.SS "既存のバインディングの保持"
.PP
408
Javaバインディング・ファイルがすでに存在する場合は、\fB\-keep\fRフラグを指定すると、コンパイラによる上書きを回避できます。デフォルトでは、すでに存在するかどうかにかかわらず、すべてのファイルが生成されます。これらのファイルをカスタマイズした場合(ただし、それらの内容が正確であるとき以外はカスタマイズは避ける)、\fB\-keep\fRオプションは有用です。コマンド\fBidlj \-keep My\&.idl\fRは、すでに存在しないすべてのクライアント側バインディングを発行します。
M
mfang 已提交
409 410
.SS "コンパイルの進捗状況の表示"
.PP
411
IDL\-to\-Javaコンパイラは、実行の各段階で状態メッセージを生成します。\fB\-v\fRオプションを使用して、\fBidlj \-v My\&.idl\fRのような冗長モードをアクティブ化します。
M
mfang 已提交
412
.PP
413
デフォルトでは、コンパイラは冗長モードでは実行されません。
M
mfang 已提交
414 415
.SS "バージョン情報の表示"
.PP
416
IDL\-to\-Javaコンパイラのビルド・バージョンを表示するには、コマンド行\fBidlj \-version\fRで\fB\-version\fRオプションを指定します。
M
mfang 已提交
417
.PP
418
バージョン情報は、コンパイラによって生成されたバインディング内にも書き込まれています。このオプションをコマンド行に指定すると、それ以外のオプションを指定しても、すべて無視されます。
419
.SH "オプション"
M
mfang 已提交
420 421 422 423 424 425 426 427 428
.PP
\-d \fIsymbol\fR
.RS 4
このオプションは、IDLファイルに次のような行を追加した場合と等価です。
.sp
.if n \{\
.RS 4
.\}
.nf
429 430
\fB#define \fR\fB\fIsymbol\fR\fR
 
M
mfang 已提交
431 432
.fi
.if n \{\
D
duke 已提交
433
.RE
M
mfang 已提交
434
.\}
T
tbell 已提交
435
.RE
M
mfang 已提交
436 437 438
.PP
\-demitAll
.RS 4
439
\fB#include\fRファイル内で定義されているものも含めて、すべての型を発行します。
D
duke 已提交
440
.RE
M
mfang 已提交
441 442 443
.PP
\-fside
.RS 4
444
発行するバインディングを定義します。\fBside\fRパラメータには、\fBclient\fR、\fBserver\fR、\fBserverTIE\fR、\fBall\fRまたは\fBallTIE\fRを指定できます。\fB\-fserverTIE\fRまたは\fB\-fallTIE\fRオプションを指定すると、委譲モデル・スケルトンが発行されます。フラグを指定しない場合、\fB\-fclient\fRにデフォルト設定されます。
M
mfang 已提交
445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463
.RE
.PP
\-i \fIinclude\-path\fR
.RS 4
デフォルトでは、インクルード・ファイルは現在のディレクトリから検索されます。このオプションを指定すると、他のディレクトリを追加できます。
.RE
.PP
\-i \fIkeep\fR
.RS 4
生成されるファイルがすでに存在している場合は、そのファイルが上書きされません。デフォルトでは、上書きされます。
.RE
.PP
\-noWarn
.RS 4
警告メッセージを表示しないようにします。
.RE
.PP
\-oldImplBase
.RS 4
464
1\&.4より前のJDK ORBと互換性のあるスケルトンを生成します。デフォルトでは、POA継承モデルのサーバー側バインディングが生成されます。このオプションを指定すると、\fBImplBase\fR継承モデルのクラスであるサーバー側バインディングが生成されるので、以前のリリースのJavaプログラミング言語との後方互換性が得られます。
M
mfang 已提交
465 466 467 468
.RE
.PP
\-pkgPrefix \fItype\fR \fIprefix\fR
.RS 4
469
\fBtype\fRがファイル・スコープで検出された場合は、その型に対して生成されるすべてのファイルについて、生成されるJavaパッケージ名に\fBprefix\fRという接頭辞が付加されます。typeは、トップレベル・モジュールの単純名か、どのモジュールよりも外側で定義されたIDL型の単純名のどちらかです。
M
mfang 已提交
470 471 472 473
.RE
.PP
\-pkgTranslate \fItype\fR \fIpackage\fR
.RS 4
474
識別子の中にモジュール名typeが検出されると、生成されるJavaパッケージ内のすべてのファイルについて、識別子の中のその名前がpackageで置き換えられます。最初に\fBpkgPrefix\fRの変更が行われます。typeの値は、トップレベルのモジュールの単純名、またはすべてのモジュールの外部で定義されたIDL型の単純名で、完全なパッケージ名に正確に一致する必要があります。
M
mfang 已提交
475 476 477 478 479 480 481 482 483
.sp
複数の変換が識別子に一致する場合、次の例に示すように、最も長い一致が選択されます。
.sp
\fBコマンド\fR:
.sp
.if n \{\
.RS 4
.\}
.nf
484 485
\fBpkgTranslate type pkg \-pkgTranslate type2\&.baz pkg2\&.fizz\fR
 
M
mfang 已提交
486 487 488 489 490 491 492 493 494 495
.fi
.if n \{\
.RE
.\}
\fB結果の変換\fR:
.sp
.if n \{\
.RS 4
.\}
.nf
496 497 498 499 500
\fBtype => pkg\fR
\fBtype\&.ext => pkg\&.ext\fR
\fBtype\&.baz => pkg2\&.fizz\fR
\fBtype2\&.baz\&.pkg => pkg2\&.fizz\&.pkg\fR
 
M
mfang 已提交
501 502 503 504
.fi
.if n \{\
.RE
.\}
505
パッケージ名\fBorg\fR、\fBorg\fR\&.o\fBmg\fR、または\fBorg\&.omg\fRのサブパッケージは、変換できません。これらのパッケージ名を変換しようとすると、互換性のないコードが生成され、\fB\-pkgTranslate\fRの後の最初の引数としてそれらのパッケージを使用すると、エラーとして扱われます。
M
mfang 已提交
506 507 508 509
.RE
.PP
\-skeletonName \fIxxx%yyy\fR
.RS 4
510 511 512
\fBxxx%yyy\fRが、スケルトンに名前を付けるパターンとして使用されます。デフォルトは次のとおりです。\fBPOA\fRベース・クラスの場合は\fB%POA\fR
(\fB\-fserver\fRまたは\fB\-fall\fR)、\fBoldImplBase\fRクラスの場合は\fB_%ImplBase\fR
(\-\fBoldImplBase\fR)および(\fB\-fserver\fRまたは\fB\-fall\fR))。
M
mfang 已提交
513 514 515 516 517 518 519 520 521
.RE
.PP
\-td \fIdir\fR
.RS 4
出力ディレクトリとして、現在のディレクトリではなく、\fIdir\fRが使用されます。
.RE
.PP
\-tieName \fIxxx%yyy\fR
.RS 4
522 523 524 525
パターンに従って、\fBxxx%yyy\fRを使用します。デフォルトは次のとおりです。\fBPOA\fRベース・クラスの場合は\fB%POA\fR
(\fB\-fserverTieまたは\-fallTie\fR)、\fBoldImplBase\fR
tieクラスの場合は\fB_%Tie\fR
(\-\fBoldImplBase\fR)および(\fB\-fserverTie\fRまたは\fB\-fallTie\fR))。
M
mfang 已提交
526 527 528 529 530 531 532 533 534 535 536 537 538
.RE
.PP
\-nowarn、\-verbose
.RS 4
リリース情報を表示して終了します。
.RE
.PP
\-version
.RS 4
リリース情報を表示して終了します。
.RE
.SH "制限事項"
.PP
539
グローバル・スコープ内のエスケープされた識別子は、IDLプリミティブ型の\fBObject\fRまたは\fBValueBase\fRと同じ綴りにしないでください。これは、シンボル表がこれらの識別子でプリロードされているためです。これらの再定義を許可すると、元の定義が上書きされます。これは、おそらく恒久的な制約です。
M
mfang 已提交
540
.PP
541
\fBfixed\fRというIDL型はサポートされていません。
M
mfang 已提交
542 543
.SH "既知の問題"
.PP
544 545
グローバル識別子についてインポートが生成されません。予期されないローカル\fBimpl\fRオブジェクトを呼び出すと、例外を受け取ります。しかし、その原因は、\fBServerDelegate\fR
DSIコード内の\fBNullPointerException\fRにあるようです。
M
mfang 已提交
546 547 548
.br
'pl 8.5i
'bp