如何在 Ant 中使用此命令行

问题描述 投票:0回答:1

我需要使用此行命令使用 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 

java jar ant
1个回答
1
投票

可能“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 文件,我建议只用 Apache Ant Zip 任务更新现有的 jar 文件(已经包含 META/MANIFEST.MF 和一些类)

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

但我猜你还希望在 jar 文件中保留包结构,这需要你的“java”exec 在正确的当前工作目录下运行。我用 zip 的选择就更明显了

<zip destfile="sample.jar" update="true">
  <fileset dir="${Path}" includes="your/package/Test.class"/>
</zip>
© www.soinside.com 2019 - 2024. All rights reserved.