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