Rmic

説明

特定のクラスに対して rmic コンパイラを実行します。

注意 rmic は Java 13 で非推奨となり、Java 15 で削除されました。Java 15 で使用するには、実行可能ファイルまたは rmic-adapter を明示的に指定する必要があります。

Rmic は、単一のクラス (classname 属性で指定) または複数のクラス (base 以下のすべてのクラスで、_Stub クラスでも _Skel クラスでもないもの) に対して実行できます。単一のクラスを rmic し、そのクラスが別のクラスにネストされている場合は、classname を Outer.Inner ではなく Outer$$Inner の形式で指定する必要があります。

rmic されるファイルのセットを絞り込むことができます。これは、includesincludesfileexcludesexcludesfile、および defaultexcludes 属性を使用して行います。includes または includesfile 属性を使用して、パターンを使用して含めるファイルを指定します。exclude または excludesfile 属性は、除外するファイルを指定するために使用されます。これもパターンを使用して行います。最後に、defaultexcludes 属性を使用して、デフォルトの除外を使用するかどうかを指定できます。ファイルの包含/除外の仕組み、およびパターンの記述方法については、ディレクトリベースのタスクのセクションを参照してください。

このタスクは暗黙的な FileSet を形成し、<fileset> のほとんどの属性 (dirbase になる) と、ネストされた <include><exclude>、および <patternset> 要素をサポートします。

異なるコンパイラを使用することができます。これは、build.rmic プロパティ、compiler 属性、またはネストされた要素で選択できます。選択肢は次のとおりです。

miniRMI プロジェクトには、このタスクのコンパイラ実装も含まれています。使用方法については、miniRMI のドキュメントを参照してください。

CORBA サポート

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 コンマまたはスペースで区切られた、除外する必要があるファイルのパターンのリスト。 いいえ。defaultexcludesno の場合はデフォルトの除外、そうでない場合はなしにデフォルト設定されます
excludesfile ファイルの名前。このファイルの各行は除外パターンと見なされます いいえ
defaultexcludes デフォルトの除外を使用するかどうかを示します (yes|no)。 いいえ。デフォルトは yes です
verify rmic に渡す前に、クラスが Remote を実装していることを確認します いいえ。デフォルトは false です
iiop ポータブル (RMI/IIOP) スタブを生成する必要があることを示します。
上記の CORBA サポートに関する注記を参照してください。
いいえ
iiopopts IIOP クラス生成の追加引数 いいえ
idl IDL 出力ファイルを生成する必要があることを示します。
上記の CORBA サポートに関する注記を参照してください。
いいえ
idlopts IDL ファイル生成の追加引数 いいえ
debug デバッグ情報を生成します (-grmic に渡します) いいえ。デフォルトは 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 です

注記:

ネストされた要素として指定されたパラメータ

classpath と extdirs

Rmicclasspath 属性と extdirs 属性は、パスのような構造 であり、ネストされた classpath 要素と extdirs 要素を使用して設定することもできます。

compilerarg

ネストされた <compilerarg> 要素を使用して、コンパイラの追加のコマンドライン引数を指定できます。これらの要素は コマンドライン引数 のように指定されますが、指定されたコンパイラ実装が使用される場合にのみ引数を有効にするために使用できる追加の属性があります。

属性 説明 必須
value コマンドライン引数 を参照してください。 これらのうち正確に1つ
line
file
path
prefix コマンドライン引数 を参照してください。Ant 1.8 以降 いいえ
suffix いいえ
compiler 選択されたコンパイラ実装がこの属性の値と一致する場合にのみ、指定された引数を渡します。有効な値は、上記の有効なコンパイラの リスト と同じです。 いいえ

compilerclasspath

Ant 1.8.0 以降

カスタムクラスが指定されている場合にコンパイラ実装のロード時に使用するクラスパスを保持する パスのような構造。組み込みコンパイラのいずれかを使用している場合は効果がありません。

RmicAdapter を実装するタイプのネストされた要素

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>

この場合、コンパイラアダプタは独自の属性とネストされた要素をサポートできます。