Jar 包结构简单总结

定义

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 接受环境变量来指定应用的入口,以此实现打包后在执行时改变应用入口。

你可能感兴趣的:(Jar 包结构简单总结)