定义
Zip file. Archive of classes 和一个META-INFO directory (optional)
结构
META-INFO Directory
包含下列文件
MANIFEST.MF
包含打包工具,程序入口,applet, extionsion`等信息。
- Manifest-Version, Signature-Version: manifest/签名 文件的版本
- Created-By: 生成jar包的java版本
- Class-Path: 该jar包依赖的外部的class 的相对路径(相对该jar包的路径)
- Main-Class: jar包执行入口
- Implementation-, Specification- : 该jar包的描述,版本等信息
INDEX.LIST
package 的index, 帮助speed up class loading
x.SF x.DSA
签名
例子SpringBoot
MANIFEST.MF
Manifest-Version: 1.0
Start-Class: com.lxian.playground.Main
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Spring-Boot-Version: 1.5.4.RELEASE
Main-Class: org.springframework.boot.loader.PropertiesLauncher
Spring 打包过后的入口为其自己的Launcher. 如PropertiesLauncher 接受环境变量来指定应用的入口,以此实现打包后在执行时改变应用入口。