在Java中,您可以使用清单文件定义应用程序的入口点,为JAR文件添加类路径或包版本。 在这个简短的教程中,我们将向您展示如何将自定义清单文件添加到Jar文件中。
1.项目结构
假设这是您的项目文件夹结构
/workspace/test/classes/com/mkyong/awt/AwtExample.class
/workspace/test/classes/manifest.txt
2. Jar It
使用以下命令创建一个Jar文件,并将您的自定义清单文件(manifest.txt)添加到其中。
jar -cvfm example.jar manifest.txt com/mkyong/awt/*.class
输出量
$ jar -cvfm example.jar manifest.txt com/mkyong/awt/*.class
added manifest
adding: com/mkyong/awt/AwtExample$1.class(in = 638) (out= 388)(deflated 39%)
adding: com/mkyong/awt/AwtExample.class(in = 879) (out= 540)(deflated 38%)
mkyong@laptop:~/workspace/JavaTips/bin$
3.完成
一个带有自定义清单文件的新“ example.jar” jar文件。
$ jar tf example.jar
META-INF/
META-INF/MANIFEST.MF
com/mkyong/awt/AwtExample$1.class
com/mkyong/awt/AwtExample.class
mkyong@laptop:~/workspace/JavaTips/bin$
说明
选项“ m”表示包括您的自定义清单文件。 您应始终注意选项的顺序,字母“ m
”和“ f
”的显示顺序必须与“ manifest
”和“ jarfile
”的显示顺序相同。
例如,
正确陈述
“ fm”应与“ example.jar manifest.txt”匹配
jar -cvfm example.jar manifest.txt com/mkyong/awt/*.class
“ mf”应与“ manifest.txt example.jar”匹配
jar -cvmf manifest.txt example.jar com/mkyong/awt/*.class
错误陈述
jar -cvfm manifest.txt example.jar com/mkyong/awt/*.class
这将无法正常工作,系统会将清单文件视为“ example.jar”,并导致“无效的标头字段”错误。
参考
翻译自: https://mkyong.com/java/how-to-add-your-manifest-into-a-jar-file/