如何在Eclipse中使用自己的MANIFEST.MF构建jar

时间:2010-12-01 10:39:35

标签: java eclipse jar manifest.mf

我在Eclipse的java项目中有一个自定义MANIFEST.MF

将项目导出到jar时,我选择

  

使用工作区中的现有清单

提取.jar表明eclipse生成了自己的清单。

我的清单:

Manifest-Version: 1.0 
Main-Class: de.somehow.tagPDF.Main
Class-Path: lib/iText-5.0.2.jar;lib/jxl.jar;lib/jai_codec.jar;lib/jai_core.jar

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

您可以使用build.xml为您构建jar文件。

然后您只需将build.xml作为Ant任务运行。

请参阅alt text

如果您希望每次构建Eclipse项目时都自动运行build.xml,则可以将其添加到Builders列表中。

请参阅alt text

下面是一个示例build.xml,其中使用了自定义清单:

<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." name="Example" default="run_build">

    <property name="guiJar" value="../../Library/<jar-name>.jar"></property>

    <target name="run_build" depends="delete_old_jar,create_dirs,create_manifest,copy_all_class_files,create_jar,delete_temp_dirs">
    </target>

    <target name="delete_old_jar">
        <delete file="${guiJar}">
        </delete>
    </target>

    <target name="create_dirs">
        <mkdir dir="jar_temp" />
        <mkdir dir="jar_temp/META-INF" />
    </target>

    <target name="delete_temp_dirs">
        <delete dir="jar_temp">
        </delete>
    </target>

    <target name="create_manifest">
        <manifest file="jar_temp/META-INF/MANIFEST.MF">
            <attribute name="Manifest-Version" value="1.0" />
            <attribute name="Version" value="1.0.0" />
            <attribute name="Company" value="Value" />
            <attribute name="Project" value="Value" />
            <attribute name="Java-Version" value="${java.version}" />
            <attribute name="Class-Path" value="test.jar" />
                    <attribute name="Main-Class" value="com.Main" />
        </manifest>
    </target>

    <target name="create_jar">
        <jar destfile="${guiJar}" manifest="jar_temp/META-INF/MANIFEST.MF" basedir="jar_temp">
        </jar>
    </target>

    <target name="copy_all_class_files">
        <copy todir="jar_temp">
            <fileset dir="classes">
                <include name="*/**" />
            </fileset>
        </copy>
    </target>
</project>

答案 1 :(得分:0)

在eclipse 3.6.1中。 Rigth点击你编译的项目 - &gt;出口 接下来,您应该从树中选择Java-JAR File 在您选择选项后出现的新形式不要点击完成但是“下一步”。 第三种形式将是'JAR Manifest Specification',你可以选择你的清单文件而不是eclipse生成的文件。