preend到类路径,而不是append



下面是解决这个问题的示例ant文件。

Target "test1"使用antcall从"test"调用。现在,当我有一些具有相同完全限定类名的类时,我希望首先加载来自test1.jar的类,但看起来test1.jar被附加到类路径中,因此选择来自test.jar的类。

是否有办法重置/清除目标test1的类路径,或者将test1.jar添加到类路径中,以便从中加载类。

<project name="TestProj" basedir=".">  
  <target name="test">      
    <java inputstring="" fork="true" failonerror="true" dir=".">
      <classpath>
        <fileset dir="C:/bb/" includes="test.jar"/>
      </classpath>      
    </java>
  </presetdef> 
  <antcall target="test1"/>
  </target>
  <target name="test1"> 
    <java inputstring="" fork="true" failonerror="true" dir=".">         
      <classpath>       
        <path location="c:/test1.jar"/>
      </classpath>
      <jvmarg line="-Xms64m -Xmx512m"/>
      <jvmarg line="-Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true"/>
    </java>
  </presetdef>
  </target>
</project>

尝试如下:

  <path id="test.classpath">
    <fileset dir="C:/bb/" includes="test.jar"/>
    <path refid="compile.classpath"/>
  </path>
  <path id="test1.classpath">
    <pathelement location="c:/test1.jar"/>
  </path>
<project name="TestProj" basedir=".">  
  <target name="test">      
    <java inputstring="" fork="true" failonerror="true" dir=".">
      <classpath>
        <path refid="test.classpath"/>
      </classpath>      
    </java>
  </presetdef> 
  <antcall target="test1"/>
  </target>
  <target name="test1"> 
    <java inputstring="" fork="true" failonerror="true" dir=".">         
      <classpath>       
        <path refid="test1.classpath"/>
      </classpath>
      <jvmarg line="-Xms64m -Xmx512m"/>
      <jvmarg line="-Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true"/>
    </java>
  </presetdef>
  </target>

相关内容

  • 没有找到相关文章

最新更新