Manifestclasspath

Apache Ant 1.7 以降

説明

Path を、ManifestClass-Path 属性に適した値のプロパティに変換します。

このタスクは、アプリケーションを起動する際に非常に長いクラス パスを使用する場合に、Windows のコマンドラインの制限を回避するために使用されることがよくあります。通常、コマンドラインで指定される長いクラス パスは、クラスパスに含める必要があるすべての jar ファイルと zip ファイルを値にリストした in-manifest Class-Path 属性を持つ 1 つの (おそらく空の) jar ファイルに置き換えられます。この属性から参照されるファイルは、jar ファイル自体に対して相対的に見つける必要があり、通常は同じディレクトリにあります。JVM は、jar の Class-Path 属性にリストされているすべてのファイル エントリを自動的に使用して、クラスを検索/ロードします。ただし、対応するファイルが見つからないエントリは無視されます。

作成されるプロパティ値は、マニフェストの最大 1 行 72 文字よりも長くなる可能性がありますが、プロパティが再参照される <manifest> 要素によって Jar 仕様に従って適切にラップされます。

このタスクを正しく機能させるには、jarfile 属性で指定したファイルから入れ子になった classpath の要素への相対パスが、jar をデプロイするときに想定されるものと同じである必要があります

パラメーター

属性 説明 必須
property 設定するプロパティの名前。このプロパティはすでに設定されていない必要があります。 はい
jarfile このタスクの設定するプロパティを使用するマニフェストを含む Jar のファイル名。このファイルはまだ存在する必要はありませんが、その親ディレクトリは存在する必要があります。 はい
maxParentLevels jar ファイルからパス エントリに移動するために、親ディレクトリを移動できる最大数。言い換えると、jar ファイルから指定されたクラス パス エントリまでの相対パスに許可される .. の最大数です。クラス パス エントリを jar ファイル自体と同じディレクトリ (またはそのサブディレクトリ) に配置するには、0 を指定します。 いいえ; デフォルトは 2

入れ子要素として指定されたパラメーター

classpath

パスのような 要素で、インプレースで定義したり、<classpath refid="pathid"/> 構文を使用して他の場所で定義されたパスを参照したりできます。このクラスパスは空であってはならず、必須です。

classpath =classpath のパスが既に定義されていると仮定して、このパスを <jar> で後で作成できる acme.jar を含む build/ ディレクトリに対して相対的に変換します。この <jar> には、<attribute name="Class-Path" value="${jar.classpath}"/> をリストする <manifest> 要素を入れ子にすることができます。

<manifestclasspath property="jar.classpath"
                   jarfile="build/acme.jar">
    <classpath refid="classpath"/>
</manifestclasspath>