gpt4 book ai didi

java - 执行 ant 创建 jar 时出现 zip 大小错误

转载 作者:行者123 更新时间:2023-11-29 03:25:50 26 4
gpt4 key购买 nike

我已经编写了一个 ant 脚本来创建一个 Jar 文件。该文件包含在 Eclipse 项目中,并且在通过 Eclipse 运行时工作正常。但是当它通过命令提示符在外部运行时,它显示以下错误:错误消息:创建 jar 时出现问题:存档包含超过 65535 个条目。 (存档可能已损坏,但我无法删除它)

jar 大小:130 MB。 Ant :1.9.3Java:1.6

<property name="jar.name" value="SAFAL.jar" />
<property name="source.root" value="src" />
<property name="class.root" value="bin" />
<property name="lib.dir" value="lib" />
<property name="jar.dir" value="C:\D\SAFAL-Exe" />
<property name="Main-Class" value="com.ktt.main.SAFALEval" />
<property name="conf.pkj" value="com/ktt/business/configurations" />
<property name="img.pkj" value="com/ktt/business/images" />

<path id="project.class.path">
<pathelement location="${class.root}" />
<fileset dir="${lib.dir}">
<include name="*.jar" />
</fileset>
</path>

<target name="clean" description="cleans up build structures">
<delete dir="${class.root}" />
<delete file="${jar.dir}/${jar.name}" />
</target>

<target name="prepare" description="sets up build structures">
<mkdir dir="${class.root}" />
</target>

<target name="compile" depends="prepare" description="Compiles all java classes">
<javac srcdir="${source.root}" destdir="${class.root}" debug="on" optimize="off" deprecation="on" source="1.6" target="1.6" includeantruntime = "false">

<classpath refid="project.class.path" />
</javac>

<mkdir dir="${class.root}/${conf.pkj}" />
<mkdir dir="${class.root}/${img.pkj}" />

<copy todir="${class.root}/${conf.pkj}">
<fileset dir="${source.root}/${conf.pkj}" />
</copy>

<copy todir="${class.root}/${img.pkj}">
<fileset dir="${source.root}/${img.pkj}" />
</copy>

</target>

<target name="jar" depends="compile">

<delete file="${jar.dir}/${jar.name}" quiet="true" failonerror="false" />

<jar destfile="${jar.dir}/${jar.name}">

<fileset dir="${class.root}" includes="**/*.*" />

<zipgroupfileset dir="${lib.dir}" />


<manifest>
<attribute name="Main-Class" value="${Main-Class}" />
<attribute name="Class-Path" value="." />
</manifest>

</jar>


</target>


<target name="run">
<java fork="true" classname="${Main-Class}">
<classpath>
<path location="./${jar.name}" />
</classpath>
</java>
</target>

最佳答案

要创建包含超过 65535 个条目的 ZIP/JAR 文件,您需要支持“zip64Mode”的 Apache Ant - 第一个支持它的版本是 Ant 1.9.1。

因此我认为您的独立 Apache Ant 版本太旧。

另见 http://ant.apache.org/manual/Tasks/zip.html#zip64

关于java - 执行 ant 创建 jar 时出现 zip 大小错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21044451/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com