JAR Manifest File Format Specification


What Is Specifiction of a JAR manifest file?

✍: FYIcenter.com


If a manifest file is provided in a JAR file, it must meet the following specifications:

1. The manifest file must be locaed at META-INF/MANIFEST.MF in the JAR file.

2. The content of a manifest file can be divided into sections separated by empty lines.

3. A section is made up by lines of "name: value" pairs (also called headers or attributes).

4. The following is the technical definition of a manifest file:

  manifest-file:         main-section newline *individual-section
  main-section:          version-info newline *main-attribute
  version-info:          Manifest-Version : version-number
  version-number :       digit+{.digit+}*
  main-attribute:        (any legitimate main attribute) newline
  individual-section:    Name : value newline *perentry-attribute
  perentry-attribute:    (any legitimate perentry attribute) newline
  newline :              CR LF | LF | CR (not followed by LF)
  digit:                 {0-9} 

  section:               *header +newline
  nonempty-section:      +header +newline
  newline:               CR LF | LF | CR (not followed by LF)
  header:                name : value
  name:                  alphanum *headerchar
  value:                 SPACE *otherchar newline *continuation
  continuation:          SPACE *otherchar newline
  alphanum:              {A-Z} | {a-z} | {0-9}
  headerchar:            alphanum | - | _
  otherchar:             any UTF-8 character except NUL, CR and LF
; Also: To prevent mangling of files sent via straight e-mail, no
; header will start with the four letters "From".

Here is a sample of a JAR manifest file:

Manifest-Version: 1.0
Implementation-Version: 1.1.1
Specification-Title: JavaBeans(TM) Activation Framework
Specification-Version: 1.1
Extension-Name: javax.activation
Created-By: 1.4.2 (Sun Microsystems Inc.)
Implementation-Vendor-Id: com.sun
Implementation-Vendor: Sun Microsystems, Inc.
Specification-Vendor: Sun Microsystems, Inc.
SCCS-ID: @(#)jaf.mf	1.2	05/05/23

Name: javax/activation/MimeTypeParseException.class
SHA1-Digest: lE5grROfW1qsYZdtOlB7SOrtlRU=

Name: javax/activation/CommandInfo.class
SHA1-Digest: pl22Lz5hCL9DxzbXDiAYGov6BtI=

Back to FAQ on JAR (Java ARchive) File Format.

2016-04-21, 1860👍, 0💬