特定のクラスに対して rmic コンパイラを実行します。
注意 rmic は Java 13 で非推奨となり、Java 15 で削除されました。Java 15 で使用するには、実行可能ファイルまたは rmic-adapter を明示的に指定する必要があります。
Rmic
は、単一のクラス (classname 属性で指定) または複数のクラス (base 以下のすべてのクラスで、_Stub
クラスでも _Skel
クラスでもないもの) に対して実行できます。単一のクラスを rmic
し、そのクラスが別のクラスにネストされている場合は、classname を Outer.Inner
ではなく Outer$$Inner
の形式で指定する必要があります。
rmic
されるファイルのセットを絞り込むことができます。これは、includes、includesfile、excludes、excludesfile、および defaultexcludes 属性を使用して行います。includes または includesfile 属性を使用して、パターンを使用して含めるファイルを指定します。exclude または excludesfile 属性は、除外するファイルを指定するために使用されます。これもパターンを使用して行います。最後に、defaultexcludes 属性を使用して、デフォルトの除外を使用するかどうかを指定できます。ファイルの包含/除外の仕組み、およびパターンの記述方法については、ディレクトリベースのタスクのセクションを参照してください。
このタスクは暗黙的な FileSet を形成し、<fileset>
のほとんどの属性 (dir は base になる) と、ネストされた <include>
、<exclude>
、および <patternset>
要素をサポートします。
異なるコンパイラを使用することができます。これは、build.rmic
プロパティ、compiler 属性、またはネストされた要素で選択できます。選択肢は次のとおりです。
default—プラットフォームのデフォルトコンパイラ (
kaffe、
sun、または
forking)。
sun—JDK 9 より前の標準コンパイラ
kaffe—Kaffe の標準コンパイラ
weblogic
forking—(Apache Ant 1.7 以降)
sunコンパイラを別のプロセスにフォークします。Ant 1.9.8 以降、JDK 9 以降で実行する場合のデフォルトです。
xnew—(Ant 1.7 以降)
sunコンパイラを別のプロセスにフォークし、-Xnew オプションを指定します。これは、-Xnew を使用する最も信頼性の高い方法です。
build.rmic
の値が定義されている場合は使用され、定義されていない場合はプラットフォームのデフォルトが選択されます。build.rmic
がこれに設定されている場合、デフォルトが取得されます。miniRMI プロジェクトには、このタスクのコンパイラ実装も含まれています。使用方法については、miniRMI のドキュメントを参照してください。
Java 11 は Java EE および CORBA パッケージを削除 し、rmic は -iiop オプションも -idl オプションもサポートしなくなりました。Ant 1.10.3 以降、タスクをフォークして実行可能ファイルを明示的に指定しない限り、Java 11 以降で実行しているときに rmic タスクはいずれかを使用すると失敗します。
属性 | 説明 | 必須 |
---|---|---|
base | コンパイル済みファイルを格納する場所。また、FileSet 以外のインクルードなどの親ディレクトリとしても機能します。(この機能は変更されていません。) | 注を参照してください |
destdir | コンパイル済みファイルを格納する場所。 | |
classname | rmic を実行するクラス。 | いいえ |
filtering | トークンフィルタリングを実行するかどうかを示します | いいえ |
sourcebase | -keepgenerated フラグを rmic に渡し、生成されたソースファイルを指定された sourcebase ディレクトリに移動します。 | いいえ |
stubversion | 生成されたスタブコードの JDK バージョンを指定します。-v1.1 オプションを rmic に渡す場合は 1.1、-v1.2 の場合は 1.2、-vcompat の場合は compatを指定します。 Ant 1.7 以降、バージョンを指定せず、.iiop ファイルまたは .idl ファイルを要求しない場合、 compatが選択されます。 |
いいえ。デフォルトは compatです |
classpath | コンパイル中に使用するクラスパス | いいえ |
classpathref | コンパイル中に使用するクラスパス。他の場所で定義されたパスへの 参照 として指定されます | いいえ |
includes | コンマまたはスペースで区切られた、含める必要があるファイルのパターンのリスト。 | いいえ。デフォルトはすべて (**) |
includesfile | ファイルの名前。このファイルの各行はインクルードパターンと見なされます | いいえ |
excludes | コンマまたはスペースで区切られた、除外する必要があるファイルのパターンのリスト。 | いいえ。defaultexcludes が noの場合はデフォルトの除外、そうでない場合はなしにデフォルト設定されます |
excludesfile | ファイルの名前。このファイルの各行は除外パターンと見なされます | いいえ |
defaultexcludes | デフォルトの除外を使用するかどうかを示します (yes|no)。 |
いいえ。デフォルトは yesです |
verify | rmic に渡す前に、クラスが Remote を実装していることを確認します |
いいえ。デフォルトは falseです |
iiop | ポータブル (RMI/IIOP) スタブを生成する必要があることを示します。 上記の CORBA サポートに関する注記を参照してください。 |
いいえ |
iiopopts | IIOP クラス生成の追加引数 | いいえ |
idl | IDL 出力ファイルを生成する必要があることを示します。 上記の CORBA サポートに関する注記を参照してください。 |
いいえ |
idlopts | IDL ファイル生成の追加引数 | いいえ |
debug | デバッグ情報を生成します (-g を rmic に渡します) | いいえ。デフォルトは falseです |
includeAntRuntime | Ant ランタイムライブラリを含めるかどうか | いいえ。デフォルトは yesです |
includeJavaRuntime | 実行中の JVM からデフォルトのランタイムライブラリを含めるかどうか | いいえ。デフォルトは noです |
extdirs | インストール済み拡張機能の場所 | いいえ |
compiler | 使用するコンパイラ実装。(上記の有効なコンパイラの リスト を参照してください。) | いいえ。設定されている場合は build.rmic プロパティの値に、そうでない場合は現在の JDK のデフォルトコンパイラにデフォルト設定されます |
executable | forkingまたは xnewコンパイラの使用時に使用する rmic 実行可能ファイルへの完全なパス。Ant 1.8.0 以降。 |
いいえ。現在 Ant を実行している JDK の rmic コンパイラにデフォルト設定されます |
listfiles | コンパイルされるソースファイルがリストされるかどうかを示します。Ant 1.8.0 以降。 | いいえ。デフォルトは noです |
注記:
Rmic
の classpath 属性と extdirs 属性は、パスのような構造 であり、ネストされた classpath
要素と extdirs
要素を使用して設定することもできます。
ネストされた <compilerarg>
要素を使用して、コンパイラの追加のコマンドライン引数を指定できます。これらの要素は コマンドライン引数 のように指定されますが、指定されたコンパイラ実装が使用される場合にのみ引数を有効にするために使用できる追加の属性があります。
属性 | 説明 | 必須 |
---|---|---|
value | コマンドライン引数 を参照してください。 | これらのうち正確に1つ |
line | ||
file | ||
path | ||
prefix | コマンドライン引数 を参照してください。Ant 1.8 以降。 | いいえ |
suffix | いいえ | |
compiler | 選択されたコンパイラ実装がこの属性の値と一致する場合にのみ、指定された引数を渡します。有効な値は、上記の有効なコンパイラの リスト と同じです。 | いいえ |
Ant 1.8.0 以降
カスタムクラスが指定されている場合にコンパイラ実装のロード時に使用するクラスパスを保持する パスのような構造。組み込みコンパイラのいずれかを使用している場合は効果がありません。
Ant 1.8.0 以降
定義されたタイプが RmicAdapter
インターフェースを実装している場合、そのタイプのネストされた要素を compiler 属性の代わりに使用できます。
クラス com.xyz.FooBar
に対して rmic コンパイラを実行します。コンパイルされたファイルは ${build}/classes ディレクトリに格納されます。
<rmic classname="com.xyz.FooBar" base="${build}/classes"/>
${build}/classes 以下の .class ファイルを持つすべてのクラスで、クラス名が Remote
で始まるものに対して rmic コンパイラを実行します。コンパイルされたファイルは ${build}/classes ディレクトリに格納されます。
<rmic base="${build}/classes" includes="**/Remote*.class"/>
カスタム RmicAdapter org.example.MyAdapter
を使用する場合、compiler 属性を使用できます。
<rmic classname="com.xyz.FooBar" base="${build}/classes" compiler="org.example.MyAdapter"/>
または、タイプを定義し、これをタスクにネストすることもできます。
<componentdef classname="org.example.MyAdapter" name="myadapter"/> <rmic classname="com.xyz.FooBar" base="${build}/classes"> <myadapter/> </rmic>
この場合、コンパイラアダプタは独自の属性とネストされた要素をサポートできます。