Java打包文件(jar文件)中通常会包含清单文件(META-INF/MANIFEST.MF),该文件可以包含主类以及加载类路径等信息。
该文件有着严格的格式要求,甚至一个空格都会引起错误。
MANIFEST.MF格式特别需要注意以下几点:
1. 文件中的内容以键值对的形式出现,键值对之间采用"冒号+空格"进行分隔(注意:冒号后的空格必须有,否则格式有错误)
2. 文件每行最多72个字符,可以分多行写。调用多个jar时,可以把调用的jar的路径写到一行,每个用空格隔开。当调用的jar比较多时,写在一行就比较多,而且看起来也不方便,所以更多时候是一行写一个jar,但是要注意,每行开头要至少一个空格。
3. 文件的最后必须要空两行,并且这两行都必须顶格。
exp:
Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Created-By: Apache Maven Built-By: kanlianhui Build-Jdk: 1.7.0_67 Class-Path: log4j-1.2.17.jar slf4j-api-1.7.12.jar slf4j-log4j12-1.7.12 .jar jodd-core-3.6.5.jar Main-Class: com.forg.Main
使用这个MANIFEST.MF生成的jar,就可以使用java -jar xxx.jar直接调用执行了。
【补充:】
maven中生成的jar会带有默认的manifest.mf文件。可以用maven-jar-plugin指定。
exp:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifestFile> src/main/res/META-INF/MANIFEST.MF </manifestFile> <manifest> <addClasspath>true</addClasspath> </manifest> </archive> </configuration> </plugin>
时间: 2025-01-07 13:51:45