如何为我已创建的一组JAR文件创建Manifest
文件。
我使用Eclipse创建了我的JAR文件。
有没有更好的方法来创建具有Manifest
?
答案 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向导解决问题。
答案 7 :(得分:0)
使用Eclipse,在底部的 JAR Manifest Specification 页面上,有一个文本框,您可以在其中浏览 Main 类。浏览到主类,然后点击完成。这将生成带有主类信息的清单,从而允许执行jar文件。 -Dev On
答案 8 :(得分:0)