Apache Ant 1.7 以降
Path を、Manifest の Class-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 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>