rmid.1 16.1 KB
Newer Older
M
mfang 已提交
1
'\" t
2
.\" Copyright (c) 1998, 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 23
.\"
.\" 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.
.\"
24 25 26 27 28 29 30 31 32
.\" Title: rmid
.\" Language: Japanese
.\" Date: 2013年11月21日
.\" SectDesc: Remote Method Invocation (RMI)ツール
.\" Software: JDK 8
.\" Arch: 汎用
.\" Part Number: E54734-01
.\"
.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 "rmid" "1" "2013年11月21日" "JDK 8" "Remote Method Invocation (RMI)"
.\" -----------------------------------------------------------------
.\" * 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 54
.SH "名前"
rmid \- 起動システム・デーモンを開始すると、オブジェクトをJava Virtual Machine(VM)に登録してアクティブ化できるようになります。
M
mfang 已提交
55 56 57 58 59
.SH "概要"
.sp
.if n \{\
.RS 4
.\}
T
tbell 已提交
60
.nf
61
\fBrmid\fR [\fIoptions\fR]
T
tbell 已提交
62
.fi
M
mfang 已提交
63 64 65 66 67 68
.if n \{\
.RE
.\}
.PP
\fIoptions\fR
.RS 4
69
コマンド行オプション。オプションを参照してください。
M
mfang 已提交
70
.RE
71
.SH "説明"
M
mfang 已提交
72
.PP
73
\fBrmid\fRコマンドは、起動システム・デーモンを開始します。起動システム・デーモンを開始してからでないと、アクティブ化可能オブジェクトをアクティブ化システムに登録したり、JVM内でアクティブ化したりすることができません。アクティブ化可能なオブジェクトを使用するプログラムの作成方法の詳細は、\fIアクティブ化の使用\fRに関するチュートリアル(http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/rmi/activation/overview\&.html)を参照してください
M
mfang 已提交
74
.PP
75
\fBrmid\fRコマンドを実行し、次のようにセキュリティ・ポリシー・ファイルを指定して、デーモンを起動します。
M
mfang 已提交
76 77 78 79
.sp
.if n \{\
.RS 4
.\}
T
tbell 已提交
80
.nf
81 82
\fBrmid \-J\-Djava\&.security\&.policy=rmid\&.policy\fR
 
T
tbell 已提交
83
.fi
M
mfang 已提交
84
.if n \{\
T
tbell 已提交
85
.RE
M
mfang 已提交
86 87
.\}
.PP
88
\fBrmid\fRコマンドのOracleの実装を実行する場合、デフォルトでは、セキュリティ・ポリシー・ファイルを指定する必要があります。それは、\fBrmid\fRコマンドが起動グループ用にJVMを起動するために各\fBActivationGroupDesc\fR内の情報を使用できるかどうかを検証できるようにするためです特に、\fBActivationGroupDesc\fRコンストラクタに渡される\fBCommandEnvironment\fRや任意のプロパティによって指定されるコマンドおよびオプションは、\fBrmid\fRコマンドのセキュリティ・ポリシー・ファイルの中で明示的に許可することが必要になりました。\fBsun\&.rmi\&.activation\&.execPolicy\fRプロパティの値は、起動グループ用にJVMを起動するために\fBActivationGroupDesc\fR内の情報を使用できるかどうかを判断するときに\fBrmid\fRコマンドが使用するポリシーを決定します。詳細は、\-J\-Dsun\&.rmi\&.activation\&.execPolicy=policyオプションの説明を参照してください。
M
mfang 已提交
89
.PP
90
\fBrmid\fRコマンドを実行すると、デフォルト・ポート1098でアクティベータと内部レジストリが起動され、\fBActivationSystem\fRがこの内部レジストリ内の名前\fBjava\&.rmi\&.activation\&.ActivationSystem\fRにバインドされます。
M
mfang 已提交
91
.PP
92
レジストリに他のポートを指定するには、\fBrmid\fRコマンドの実行時に\fB\-port\fRオプションを指定する必要があります。たとえば、次のコマンドは、レジストリのデフォルト・ポート1099で、起動システム・デーモンとレジストリを起動します。
M
mfang 已提交
93 94 95 96
.sp
.if n \{\
.RS 4
.\}
T
tbell 已提交
97
.nf
98 99
\fBrmid \-J\-Djava\&.security\&.policy=rmid\&.policy \-port 1099\fR
 
T
tbell 已提交
100
.fi
M
mfang 已提交
101 102 103 104 105
.if n \{\
.RE
.\}
.SH "必要に応じてRMIDを開始"
.PP
106 107 108
\fBrmid\fRをコマンド行から開始するには、\fBinetd\fR
(Oracle Solarisの場合)、または\fBxinetd\fR
(Linuxの場合)を構成して\fBrmid\fRを必要に応じて開始する方法もあります。
M
mfang 已提交
109
.PP
110
RMIDを開始すると、\fBSystem\&.inheritedChannel\fRメソッドを呼び出して、継承されたチャンネル(\fBinetd\fR/\fBxinetd\fRから継承)を取得しようとします。継承されたチャンネルがnullであるか、\fBjava\&.nio\&.channels\&.ServerSocketChannel\fRのインスタンスでなかった場合、RMIDはそのチャンネルは\fBinetd\fR/\fBxinetd\fRによって起動されたものではないと判断し、前述のように起動します。
M
mfang 已提交
111
.PP
112
継承されたチャンネルが\fBServerSocketChannel\fRインスタンスである場合は、RMIDはエクスポートするリモート・オブジェクト、つまり\fBjava\&.rmi\&.activation\&.ActivationSystem\fRがバインドされているレジストリと\fBjava\&.rmi\&.activation\&.Activator\fRリモート・オブジェクトに対するリクエストを受信するサーバー・ソケットとして、\fBServerSocketChannel\fRから取得した\fBjava\&.net\&.ServerSocket\fRを使用します。このモードでは、RMIDの動作は、次のことを除いて、コマンド行から起動した場合と同じです。
M
mfang 已提交
113 114 115 116 117 118 119 120 121
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
122
\fBSystem\&.err\fRに対する出力は、ファイルにリダイレクトされる。このファイルは\fBjava\&.io\&.tmpdir\fRシステム・プロパティで指定されるディレクトリ(通常は\fB/var/tmp\fRまたは\fB/tmp\fR)にある。ファイル名の接頭辞は\fBrmid\-err\fRで、接尾辞は\fBtmp\fRである。
T
tbell 已提交
123
.RE
M
mfang 已提交
124 125 126 127 128 129 130 131 132
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
133
\fB\-port\fRオプションは使用できません。このオプションが指定されている場合、RMIDはエラー・メッセージが表示されて終了します。
M
mfang 已提交
134 135 136 137 138 139 140 141 142 143
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
144
\fB\-log\fRオプションは必須。このオプションが指定されていない場合、RMIDはエラー・メッセージが表示されて終了します。
M
mfang 已提交
145 146
.RE
.PP
147 148
必要に応じてサービスを開始するように構成する方法の詳細は、\fBinetd\fR
(Oracle Solarisの場合)、または\fBxinetd\fR
M
mfang 已提交
149
(Linux)のマニュアル・ページを参照してください。
150
.SH "オプション"
M
mfang 已提交
151 152 153
.PP
\-C\fIオプション\fR
.RS 4
154
\fBrmid\fRコマンドの子プロセス(起動グループ)が作成されたときに、それぞれの子プロセスにコマンド行引数として渡されるオプションを指定します。たとえば、次のように指定すると、起動システム・デーモンによって生成される各仮想マシンにプロパティを渡すことができます。
M
mfang 已提交
155 156 157 158
.sp
.if n \{\
.RS 4
.\}
T
tbell 已提交
159
.nf
160 161
\fBrmid \-C\-Dsome\&.property=value\fR
 
T
tbell 已提交
162
.fi
M
mfang 已提交
163 164 165
.if n \{\
.RE
.\}
166
コマンド行引数を子プロセスに渡す機能は、デバッグを行う場合に便利です。たとえば、次のコマンドでは、すべての子JVMでserver\-callロギングが可能です。
M
mfang 已提交
167 168 169 170
.sp
.if n \{\
.RS 4
.\}
T
tbell 已提交
171
.nf
172 173
\fBrmid \-C\-Djava\&.rmi\&.server\&.logCalls=true\fR
 
T
tbell 已提交
174
.fi
M
mfang 已提交
175 176 177 178 179 180 181
.if n \{\
.RE
.\}
.RE
.PP
\-J\fIoption\fR
.RS 4
182
RMIDを実行しているJavaインタプリタに渡すオプションを指定します。たとえば、\fBrmid\fRコマンドが\fBrmid\&.policy\fRという名前のポリシー・ファイルを使用するように指定するには、\fBrmid\fRのコマンド行で\fB\-J\fRオプションを使用して、\fBjava\&.security\&.policy\fRプロパティを定義します。次に例を示します。
M
mfang 已提交
183 184 185 186
.sp
.if n \{\
.RS 4
.\}
T
tbell 已提交
187
.nf
188 189
\fBrmid \-J\-Djava\&.security\&.policy\-rmid\&.policy\fR
 
T
tbell 已提交
190
.fi
M
mfang 已提交
191 192 193 194 195 196 197
.if n \{\
.RE
.\}
.RE
.PP
\-J\-Dsun\&.rmi\&.activation\&.execPolicy=\fIpolicy\fR
.RS 4
198
起動グループが実行されることになるJVMの起動に使用するコマンドおよびコマンド行オプションをチェックするために、RMIDが採用するポリシーを指定します。このオプションは、Java RMI起動デーモンのOracleの実装のみに存在することに注意してください。コマンド行にこのプロパティを指定しない場合、結果は\fB\-J\-Dsun\&.rmi\&.activation\&.execPolicy=default\fRを指定した場合と同じになります。\fBpolicy\fRに指定可能な値は、\fBdefault\fR、\fBpolicyClassName\fRまたは\fBnone\fRです。
M
mfang 已提交
199 200 201 202 203 204 205 206 207 208 209
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
デフォルト
.sp
210
\fBdefault\fRまたは未指定値の\fBexecPolicy\fRの場合、\fBrmid\fRコマンドが実行できるのは、\fBrmid\fRコマンドが使用するセキュリティ・ポリシー・ファイルの中で、実行する権限が\fBrmid\fRに与えられているコマンドおよびコマンド行オプションのみです。デフォルトの実行ポリシーで使用できるのは、デフォルトの起動グループ実装のみです。
M
mfang 已提交
211
.sp
212
\fBrmid\fRコマンドは、起動グループ用のJVMを起動するときに、そのグループについて登録された起動グループ記述子である\fBActivationGroupDesc\fR内の情報を使用します。グループ記述子は、\fBActivationGroupDesc\&.CommandEnvironment\fRを指定します(省略可能)。これには、起動グループを開始するコマンドと、そのコマンド行に追加できるコマンド行オプションが含まれています。デフォルトでは、\fBrmid\fRコマンドは\fBjava\&.home\fRにある\fBjava\fRコマンドを使用します。グループ記述子には、コマンド行にオプションとして追加されるプロパティ・オーバーライドも含まれます(\fB\-D<property>=<value>\fRとして定義されます)。\fBcom\&.sun\&.rmi\&.rmid\&.ExecPermission\fR権限は\fBrmid\fRコマンドに、起動グループを開始するためにグループ記述子の\fBCommandEnvironment\fRで指定されたコマンドを実行する権限を付与します。\fBcom\&.sun\&.rmi\&.rmid\&.ExecOptionPermission\fR権限は起動グループの開始時に、グループ記述子でプロパティ・オーバーライドとして、または\fBCommandEnvironment\fRでオプションとして指定されたコマンド行オプションを、\fBrmid\fRコマンドが使用することを許可します。\fBrmid\fRコマンドに様々なコマンドおよびオプションを実行する権限を付与する場合、権限\fBExecPermission\fRおよび\fBExecOptionPermission\fRをすべてのコード・ソースに付与する必要があります。
M
mfang 已提交
213 214 215
.sp
\fBExecPermission\fR
.sp
216
\fBExecPermission\fRクラスは、起動グループを開始するために\fBrmid\fRコマンドが特定のコマンドを実行する権限を表します。
M
mfang 已提交
217 218
.sp
\fB構文\fR:
219
\fBExecPermission\fRの名前は、\fBrmid\fRコマンドに実行を許可するコマンドのパス名です。スラッシュ(/)およびアスタリスク(*)で終わるパス名は、そのディレクトリに含まれるすべてのファイルを示します。スラッシュはファイル区切り文字\fBFile\&.separatorChar\fRです。スラッシュ(/)およびマイナス符号(\-)で終わるパス名は、そのディレクトリに含まれるすべてのファイルとサブディレクトリ(再帰的に)を示します。特殊なトークン\fB<<ALL FILES>>\fRで構成されるパス名は、どのファイルとも一致します。
M
mfang 已提交
220 221 222 223 224
.sp
パス名にアスタリスク(*)を指定した場合は、現在のディレクトリ内のすべてのファイルを示します。パス名にマイナス符号(\-)を指定した場合は、現在のディレクトリ内のすべてのファイルおよび(再帰的に)現在のディレクトリに含まれるすべてのファイルとサブディレクトリを示します。
.sp
\fBExecOptionPermission\fR
.sp
225
\fBExecOptionPermission\fRクラスは、起動グループを開始するときに\fBrmid\fRコマンドで特定のコマンド行オプションを使用できる権限を表します。\fBExecOptionPermission\fRの名前は、コマンド行オプションの値です。
M
mfang 已提交
226 227 228 229
.sp
\fB構文\fR: オプションでは、ワイルドカードが限定的にサポートされます。アスタリスクは、ワイルドカード・マッチを表します。アスタリスク(*)は、オプション名そのものとして使用できます。つまり、任意のオプションを表すことができます。また、オプション名の末尾に使用することもできます。ただし、ドット(\&.)か等号(=)の直後にアスタリスク(*)を指定する必要があります。
.sp
例:
230
\fB*\fRや\fB\-Dmydir\&.*\fRや\fB\-Da\&.b\&.c=*\fRは有効ですが、\fB*mydir\fRや\fB\-Da*b\fRや\fBab*\fRは無効です。
M
mfang 已提交
231 232 233
.sp
\fBrmidのポリシー・ファイル\fR
.sp
234
\fBrmid\fRコマンドに様々なコマンドおよびオプションを実行する権限を許可する場合は、権限\fBExecPermission\fRおよび\fBExecOptionPermission\fRをすべてのコード・ソースに付与する必要があります(汎用的に)。これらの権限をチェックするのは\fBrmid\fRコマンドのみなので、これらの権限を汎用的に付与しても安全です。
M
mfang 已提交
235
.sp
236
\fBrmid\fRコマンドに各種の実行権限を付与するポリシー・ファイルの例を、次に示します。
M
mfang 已提交
237 238 239 240
.sp
.if n \{\
.RS 4
.\}
D
duke 已提交
241
.nf
242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257
\fBgrant {\fR
\fB    permission com\&.sun\&.rmi\&.rmid\&.ExecPermission\fR
\fB        "/files/apps/java/jdk1\&.7\&.0/solaris/bin/java";\fR
\fB \fR
\fB    permission com\&.sun\&.rmi\&.rmid\&.ExecPermission\fR
\fB        "/files/apps/rmidcmds/*";\fR
\fB \fR
\fB    permission com\&.sun\&.rmi\&.rmid\&.ExecOptionPermission\fR
\fB        "\-Djava\&.security\&.policy=/files/policies/group\&.policy";\fR
\fB \fR
\fB    permission com\&.sun\&.rmi\&.rmid\&.ExecOptionPermission\fR
\fB        "\-Djava\&.security\&.debug=*";\fR
\fB \fR
\fB    permission com\&.sun\&.rmi\&.rmid\&.ExecOptionPermission\fR
\fB        "\-Dsun\&.rmi\&.*";\fR
\fB};\fR
M
mfang 已提交
258
 
D
duke 已提交
259
.fi
M
mfang 已提交
260 261 262
.if n \{\
.RE
.\}
263
最初に付与されている権限は、\fBrmid\fRコマンドに対し、パス名により明示的に指定される\fBjava\fRコマンドの1\&.7\&.0リリースの実行を許可します。デフォルトでは、\fBjava\&.home\fRにあるバージョンの\fBjava\fRコマンドを使用します。\fBrmid\fRコマンドが使用するのと同じバージョンが使用されるため、そのコマンドは、ポリシー・ファイルで指定する必要はありません。2番目の権限は、\fBrmid\fRコマンドに対して、ディレクトリ\fB/files/apps/rmidcmds\fR内の任意のコマンドの実行権限を許可します。
M
mfang 已提交
264
.sp
265
3番目に付与されている権限\fBExecOptionPermission\fRは、\fBrmid\fRコマンドに対して、セキュリティ・ポリシー・ファイルを\fB/files/policies/group\&.policy\fRとして定義している起動グループの開始を許可します。次の権限は、起動グループが\fBjava\&.security\&.debug property\fRを使用することを許可しています。最後の権限は、起動グループが\fBsun\&.rmi property\fR名の階層内の任意のプロパティを使用することを許可しています。
M
mfang 已提交
266
.sp
267
ポリシー・ファイルを指定して\fBrmid\fRコマンドを起動するには、\fBrmid\fRのコマンド行で\fBjava\&.security\&.policy\fRプロパティを指定する必要があります。次に例を示します。
M
mfang 已提交
268
.sp
269
\fBrmid \-J\-Djava\&.security\&.policy=rmid\&.policy\fR\&.
T
tbell 已提交
270
.RE
M
mfang 已提交
271 272 273 274 275 276 277 278 279 280 281
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
<policyClassName>
.sp
282
デフォルトの動作では十分な柔軟性が得られない場合、管理者は、\fBrmid\fRの起動時に、\fBcheckExecCommand\fRメソッドが所属するクラスの名前を指定して、\fBrmid\fRコマンドが実行するコマンドをチェックすることができます。
M
mfang 已提交
283
.sp
284
\fBpolicyClassName\fRには、引数なしのコンストラクタを持ち、次のような\fBcheckExecCommand\fRメソッドを実装しているpublicクラスを指定します。
M
mfang 已提交
285 286 287 288
.sp
.if n \{\
.RS 4
.\}
D
duke 已提交
289
.nf
290 291 292
\fB public void checkExecCommand(ActivationGroupDesc desc, String[] command)\fR
\fB        throws SecurityException;\fR
 
D
duke 已提交
293
.fi
M
mfang 已提交
294 295 296
.if n \{\
.RE
.\}
297
起動グループを開始する前に、\fBrmid\fRコマンドは、ポリシーの\fBcheckExecCommand\fRメソッドを呼び出します。このとき、起動グループの記述子と、起動グループを開始するための完全なコマンドを含む配列をそのメソッドに渡します。\fBcheckExecCommand\fRが\fBSecurityException\fRをスローすると、\fBrmid\fRコマンドはその起動グループを開始せず、オブジェクトの起動を試行している呼出し側には\fBActivationException\fRがスローされます。
M
mfang 已提交
298 299 300 301 302 303 304 305 306 307 308 309
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
none
.sp
310
\fBsun\&.rmi\&.activation\&.execPolicy\fRプロパティの値が\fBnone\fRの場合、\fBrmid\fRコマンドは、起動グループを開始するコマンドをまったく検証しません。
T
tbell 已提交
311
.RE
M
mfang 已提交
312 313 314 315
.RE
.PP
\-log \fIdir\fR
.RS 4
316
起動システム・デーモンがデータベースおよび関連情報を書き込むのに使用するディレクトリの名前を指定します。デフォルトでは、\fBrmid\fRコマンドを実行したディレクトリに、logというログ・ディレクトリが作成されます。
M
mfang 已提交
317 318 319 320
.RE
.PP
\-port \fIport\fR
.RS 4
321
レジストリが使用するポートを指定します。起動システム・デーモンは、このレジストリの中で、\fBjava\&.rmi\&.activation\&.ActivationSystem\fRという名前で\fBActivationSystem\fRをバインドします。ローカル・マシン上の\fBActivationSystem\fRは、次のように\fBNaming\&.lookup\fRメソッドを呼び出すことによって取得できます。
M
mfang 已提交
322 323 324 325
.sp
.if n \{\
.RS 4
.\}
D
duke 已提交
326
.nf
327 328 329 330 331
\fBimport java\&.rmi\&.*; \fR
\fB    import java\&.rmi\&.activation\&.*;\fR
\fB \fR
\fB    ActivationSystem system; system = (ActivationSystem)\fR
\fB    Naming\&.lookup("//:port/java\&.rmi\&.activation\&.ActivationSystem");\fR
M
mfang 已提交
332
 
D
duke 已提交
333
.fi
M
mfang 已提交
334 335 336 337 338 339 340
.if n \{\
.RE
.\}
.RE
.PP
\-stop
.RS 4
341
\fB\-port\fRオプションによって指定されたポートの、現在の\fBrmid\fRコマンドの呼出しを停止します。ポートが指定されていない場合は、このオプションはポート1098で実行されている\fBrmid\fRの呼出しを停止します。
D
duke 已提交
342
.RE
343
.SH "環境変数"
M
mfang 已提交
344 345 346 347
.PP
CLASSPATH
.RS 4
ユーザー定義クラスへのパスをシステムに指定します。ディレクトリはコロンで区切られます。例:
348
\fB\&.:/usr/local/java/classes\fR
D
duke 已提交
349
.RE
350
.SH "関連項目"
M
mfang 已提交
351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
java(1)
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Setting the Class Path
.RE
.br
'pl 8.5i
'bp