import java.util.*; import java.util.jar.*; import java.io.*; /* * Sends the "estimated" JDK version (expected to be in the jar manifest "Created-By" attribute) * to System.out. */ public class JarJDKVersion { public static void main(String[] args) { JarFile jarFile = null; Manifest manifest = null; String version = null; // Report usage if no parameters given if (args.length < 1) { System.out.println("usage: java JarJDKVersion "); System.exit(0); } // Open specified jar file try { jarFile = new JarFile(args[0]); } catch (IOException e) { System.err.println("Unable to read jar file: " + args[0]); System.exit(1); } // Fetch manifest from jar file try { manifest = jarFile.getManifest(); } catch (IOException e) { System.err.println("Unable to read manifest from jar file: " + args[0]); System.exit(2); } // Display version from jar manifest Attributes attributes = manifest.getMainAttributes(); version = attributes.getValue("Created-By").toString(); if (version != null) System.out.println(version); else { System.err.println("Unable to determine version from jar manifest."); System.exit(3); } } }