使用Eclipse为JAR文件自动创建清单文件

时间:2009-09-11 11:27:55

标签: java eclipse jar manifest

如何为我已创建的一组JAR文件创建Manifest文件。

我使用Eclipse创建了我的JAR文件。

有没有更好的方法来创建具有Manifest

的JAR文件

9 个答案:

答案 0 :(得分:7)

Eclipse提供了为Jar生成清单文件的选项,将生成的清单保存到项目中,或者使用指定的文件作为清单。

我有Eclipse 3.4.2,它在这个过程的第四个屏幕上:

右键单击Project - >出口 - > Java / JAR文件,Next,JAR文件规范,Next,JAR包装选项,Next,JAR Manifest规范。

默认情况下只是为JAR生成一个默认清单,而不是将生成的文件保存回项目,所以如果你打开你的JAR文件,它会有一个清单,但它只会有类似的东西。 :

Manifest-Version: 1.0

在其中。

如果你想更改现有的JAR而不重新构建它们,最简单的方法可能就是疯狂建议并用Zip工具打开它们并编辑现有的/META-INF/MANIFEST.MF文件并将其保存回JAR。

答案 1 :(得分:5)

我今天遇到了这个问题。

是的,Eclipse会为你创建Manifest,但这真是一个笑话。

它只包含行Manifest-Version: 1.0。我还没想出如何让它添加我的Main类,所以我创建了自己的MANIFEST.MF文件,将它添加到我的项目主目录(不是src而不是lib)。然后,当我去Export> JAR文件,一直点击Next到最后(不要太早点击Finish)并单击选项从项目中选择清单。选择刚刚添加到项目中的清单文件。确保Manifest具有Main类的路径(例如com.company等)。例如,这是一个基本的Manifest文件的样子:

Manifest-Version: 1.0
Created-By: 1.6.0 (Sun Microsystems Inc.)
Main-Class: MyPackage.MyClass

我尝试了@Michael的方法,但最终我的JAR中没有留下任何类文件,只有Manifest文件..哦,好吧。我的上述方法效果很好。

答案 2 :(得分:3)

清单是一个简单的文本文件,Sun's tutorial详细描述了其内容。

您只需使用以下命令创建此类文件和update the JAR files

jar cfm <jar-file> <manifest-addition>

答案 3 :(得分:3)

使用Ant,您可以使用 jar 任务。它有一个清单选项,用于指定您需要包含的所有属性。像这样:

  <target name="create-my-jar">
     <jar jarfile="foo.jar" basedir="bin/classes">      
        <manifest>
        <attribute name="Class-Path" value="xxx"/>
        <attribute name="Ant-Version" value="${ant.version}"/> 
        <attribute name="Created-By" value="JDK ${java.version} (${java.vendor})"/>
        <attribute name='Specification-Title' value='xxx' />
        <attribute name='Specification-Version' value='xxx' />
        <attribute name='Specification-Vendor' value='xxx' />
        <attribute name='Implementation-Title' value='xxx' />
        <attribute name='Implementation-Version' value='xxx' />
        <attribute name='Implementation-Vendor' value='xxx' />
        <attribute name='Implementation-Vendor-Id' value='xxx' />
        <attribute name='Implementation-Vendor-URL' value='xxx' />
        <attribute name="Built-By" value="${user.name}"/>
        <attribute name='Build-Date' value='xxx'/>
        <attribute name='Build-Time' value='xxx'/>              
        </manifest>
        </jar>
   </target>

答案 4 :(得分:0)

使用jar创建jar cf jar-file inputs-files时会创建默认清单文件。

答案 5 :(得分:0)

清单文件是文本文件。由于JAR文件实际上是ZIP文件,您还可以使用7-zip之类的工具添加清单。当然,这对签名的JAR不起作用。

答案 6 :(得分:0)

此外,您可以查看此文档,这有助于我使用Eclipse向导解决问题。

See Eclipse Documentation

答案 7 :(得分:0)

使用Eclipse,在底部的 JAR Manifest Specification 页面上,有一个文本框,您可以在其中浏览 Main 类。浏览到类,然后点击完成。这将生成带有主类信息的清单,从而允许执行jar文件。 -Dev On

答案 8 :(得分:0)

有点晚,但这是最简单/最有效的解决方案:

<块引用>

右键单击项目->导出->在文件夹Java中选择“Runnable Jar 文件”->
enter image description here

Next-> Launch Configuration:选择您最近用来测试您的 项目,其余保持默认

清单现在具有启动 *.jar 正确的相关条目