完全を期すために、これらは可能な解決策です。
${ant.refid:} プレフィックスの使用
これは最もクリーンなソリューションであり、これを指摘してくれたマーティン・クレイトンにすべての功績があります。使うだけ
<java ...>
<jvmarg value="Xbootclasspath/a:${myjar.jar}${path.separator}${ant.refid:classpath.id}"/>
</java>
新しいプロパティの作成
<property name="classpath.property" refid="classpath.id"/>
<java ...>
<jvmarg value="Xbootclasspath/a:${myjar.jar}${path.separator}${classpath.property}"/>
</java>
bootclasspath と bootclasspathref の使用
はでbootclasspathref
のみ使用できますがjavac
、bootclasspath
にネストできますjava
:
<java fork="true" ...>
<bootclasspath>
<path refid="classpath.id"/>
<pathelement path="${myjar.jar}" />
</bootclasspath>
</java>
ただし、このソリューションには複雑な問題があります。
<bootclasspath>
実際の bootclasspath を置き換え、そこから Java の jar を削除します<bootclasspath/a>
。これまでのところ、ant にはネストされたタグはありません。
- Java SE 9 では、-Xboothclasspathプロパティは使用できなくなりました。-Xboothclasspath/aしかないため、そこで
<bootclasspath>
は機能しません。