我在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
我该如何解决这个问题?
答案 0 :(得分:4)
您可以使用build.xml为您构建jar文件。
然后您只需将build.xml作为Ant任务运行。
请参阅
如果您希望每次构建Eclipse项目时都自动运行build.xml,则可以将其添加到Builders列表中。
请参阅
下面是一个示例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生成的文件。