Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 执行ant创建jar时获取zip大小错误_Java_Ant_Jar - Fatal编程技术网

Java 执行ant创建jar时获取zip大小错误

Java 执行ant创建jar时获取zip大小错误,java,ant,jar,Java,Ant,Jar,我已经编写了一个ant脚本来创建Jar文件。该文件包含在Eclipse项目中,在通过Eclipse运行时可以正常工作。但当通过命令提示符在外部运行时,会显示以下错误: 错误消息:创建jar时出现问题:存档包含超过65535个条目。(档案可能已损坏,但我无法将其删除) 罐子大小:130MB。 蚂蚁:1.9.3 Java:1.6 要创建包含超过65535个条目的ZIP/JAR文件,您需要支持“zip64Mode”的Apache Ant—支持它的第一个版本是Ant 1.9.1 因此,我假设您的

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

罐子大小:130MB。 蚂蚁:1.9.3 Java:1.6



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

因此,我假设您的独立ApacheAnt版本太旧了


另请参见

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

因此,我假设您的独立ApacheAnt版本太旧了


另请参见问题已解决。我将ANT版本从1.9.3更改为1.8.4(1.8.4是默认的EclipseAnt版本)。现在ant构建文件已成功执行。

问题已解决。我将ANT版本从1.9.3更改为1.8.4(1.8.4是默认的EclipseAnt版本)。现在ant构建文件正在成功执行。

我猜它在Eclipse之外运行时,是从当前工作目录运行的。因此,您的相对路径(bin、lib、src等)可能包含比您的项目中更多的文件。谢谢Peter。我正在lib、bin、ant文件所在的目录中执行ant命令。还有一个观察结果:创建的jar文件(尽管已损坏)与通过eclipse创建的jar文件大小相同。我猜,在eclipse之外运行时,它是从当前工作目录运行的。因此,您的相对路径(bin、lib、src等)可能包含比您的项目中更多的文件。谢谢Peter。我正在lib、bin和ant文件所在的目录中执行ant命令。还有一个观察结果:创建的jar文件(尽管已损坏)与通过eclipse创建的jar文件大小相同。我有ant 1.9.3。仍然面临同样的问题。这就是问题所在:zip64Mode默认设置为“根据需要”。zip64Mode进入jar任务的方式是:[无论什么]我有ANT 1.9.3。仍然面临同样的问题。这就是问题所在:zip64Mode默认设置为“根据需要”。zip64Mode作为:[任何内容]进入jar任务
<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>