0

私はantを初めて使用し、クラスパスを取得するためにこれを書きました:

  <!--
  ## ************************************************************************** 
  ## ENVIRONMENT DEFINITION 
  -->
  <path id="classpath">
    <pathelement path="${env.CLASSPATH}" />
 </path> 
 <property name="extdirs" value="${env.EXTDIRS}" />

FedoraではなくUbuntuで動作します:これが私のクラスパスの値です:

 echo $CLASSPATH 
/opt/jdk1.7.0/jre/lib/rt.jar:/home/amira/workspace/classes

pathelement の属性 location を使用しようとしましたが、Fedora でも機能しません。

  <pathelement location="${env.CLASSPATH}" />
4

1 に答える 1

1

Ant はすべてのJava プロパティにアクセスできるため、以下を使用できます。

<echo>
 ${java.class.path}
 ${java.ext.dirs}
</echo>

それに加えて、Ant には定義済みのプロパティもあります。

コメント後に編集

で試してください:

<property environment="env"/>     
<path id="classpath">
 <pathelement path="${env.CLASSPATH}"/>
</path>

<property name="extdirs" value="${env.EXTDIRS}"/>
<dirname file="${ant.file}" property="antfiledirname"/>

<echo>
 Classpath 1 => ${ant.refid:classpath}
 Classpath 2 => ${env.CLASSPATH}
 ExtDIRS     => ${env.EXTDIRS}
 AntFileDirName => ${ antfiledirname}
</echo>

クラスパス 1 とクラスパス 2 の出力は本質的に同じですが、クラスパス 1 の最初のエントリが antfile への完全修飾パスであるという小さな違いがあります。例では ${ant.file} = ${antfiledirname} のディレクトリ名を意味します。スニペット – クラスパス 2 では「.」です</p>

于 2013-11-08T08:59:30.097 に答える