java 如何在Ant中使用此命令行

inkz8wg9  于 2023-03-06  发布在  Java
关注(0)|答案(1)|浏览(147)

我需要使用ant更新我的文件jar,方法是使用以下行命令:jar-uf sample.jar [jar文件中的路径]目标文件
我试过这个:

<target name="UpdateJar" depends="Compile">
    <exec executable="java path">
        <arg value="-uf"/>
        <arg value="$Sample.jar"/>
        <arg value="${Path}"/>
        <arg value="Test.class"/>
    </exec>
</target>

但它不工作没有这样的文件或目录
错误如下所示:(path is : X:\Jar\test ): [exec] X:\Jar\test no such file or directory [exec] Result: 1

vngu2lb8

vngu2lb81#

可能“exec”任务有一个额外的参数,我猜您希望包含目录“${Path}"中的Test.class,我将改为

<target name="UpdateJar" depends="Compile">
  <exec executable="java">
    <arg value="-uf"/>
    <arg value="sample.jar"/>
    <arg value="${Path}/Test.class"/>
  </exec>
</target>

无论如何,为了提高效率,知道一个jar文件只是一个Zip文件,我建议只使用ApacheAntZip任务更新现有的jar文件(已经包含 meta/MANIFEST.MF和一些类

<zip destfile="sample.jar" update="true">
  <fileset dir="${Path}" includes="Test.class"/>
</zip>

但是我猜您也希望在jar文件中保留包结构,这需要您的“java”exec在正确的当前工作目录下运行。

<zip destfile="sample.jar" update="true">
  <fileset dir="${Path}" includes="your/package/Test.class"/>
</zip>

相关问题