jar
List entries of JAR file Manifest
In this example we shall show you how to list entries of a JAR file Manifest. The manifest is a special file that contains information about the files packaged in a JAR file. To list the entries of a JAR file Manifest one should perform the following steps:
- Create a new JarFile to read from the specified file.
- Get the Manifest for that file, using the
getManifest()
API method of the JarFile. - Get the manifest entries, with the
getEntries()
API method. It returns a Map of String – Attributes key-value pairs. - For each entry get all attributes. An Iterator can be used over the String keys of the Map of entries to get the Attributes for each key.
- Then a second Iterator can be used over the Attributes, to get the
Attributes.Name
, andgetValue(Attributes.Name name)
API method of the Attributes to get the value of eachAttributes.Name
.
Let’s take a look at the code snippet that follows:
package com.javacodegeeks.snippets.core; import java.util.Iterator; import java.util.Map; import java.util.jar.Attributes; import java.util.jar.JarFile; import java.util.jar.Manifest; public class ListEntriesOfJARFileManifest { public static void main(String[] args) throws Exception { // create a new JAR file to read from the specified file JarFile jarfile = new JarFile("jsp-api.jar"); // get the manifest for that file Manifest manifest = jarfile.getManifest(); // get the manifest entries Map<String, Attributes> mfEntries = manifest.getEntries(); for (Iterator<String> it = mfEntries.keySet().iterator(); it.hasNext(); ) { String entryName = it.next(); // get all attributes for the entry Attributes attrs = mfEntries.get(entryName); for (Iterator<Object> it2=attrs.keySet().iterator(); it2.hasNext(); ) { Attributes.Name attrName = (Attributes.Name)it2.next(); String attrValue = attrs.getValue(attrName); System.out.println(attrName + ":" + attrValue); } } } }
Output:
Implementation-Vendor:Apache Software Foundation
Specification-Title:Java API for JavaServer Pages
Implementation-Title:javax.servlet.jsp
Implementation-Version:2.2.FR
Specification-Version:2.2
Specification-Vendor:Sun Microsystems, Inc.
This was an example of how to list entries of a JAR file Manifest in Java.
Map mfEntries = manifest.getEntries();
This line is giving me empty map. can anyone help ?
Here is my code:
import java.io.*;
import java.util.Map;
import java.util.jar.*;
public class Demo {
public static void main(String[] args) throws IOException {
String manifest_destination_filePath = “D:\\lib3\\MANIFEST.MF”;
BufferedInputStream is = new BufferedInputStream(new FileInputStream(new File(manifest_destination_filePath)));
Manifest mf = new Manifest(is);
Map mfEntries = mf.getEntries();
System.out.println();
}
}