判断编译的class资料JDK版本号
判断编译的class文件JDK版本号
public static void main(String[] args) { try { String filename = "/home/xxx/apps/eclipse/workspace/Test/bin/com/ibm/plugin/test/MyChecker.class"; DataInputStream in = new DataInputStream(new FileInputStream(filename)); int magic = in.readInt(); if (magic != 0xcafebabe) { System.out.println(filename + "is not a valid class!"); } int minor = in.readUnsignedShort(); int major = in.readUnsignedShort(); System.out.println(filename + ":" + major + "." + minor); in.close(); } catch (IOException e) { e.printStackTrace(); } String version = null; DataInputStream in = null; try { tring filename = "/home/zhujt/apps/eclipse/workspace/Test/bin/com/ibm/plugin/test/MyChecker.class"; in = new DataInputStream(new FileInputStream(filename)); int magic = in.readInt(); if (magic != 0xcafebabe) { throw new IllegalArgumentException("Wrong file format."); } int minor = in.readUnsignedShort(); int major = in.readUnsignedShort(); /* major minor version 45 3 1.0 45 3 1.1 46 0 1.2 47 0 1.3 48 0 1.4 49 0 1.5 50 0 1.6 */ if(major == 45 && minor == 3) { version = "1.1"; } else if(major == 46) { version = "1.2"; } else if(major == 47) { version = "1.3"; } else if(major == 48) { version = "1.4"; } else if(major == 49) { version = "1.5"; } else if(major == 50) { version = "1.6"; } // Just for future use, it is not correct else if(major > 50) { version = "1.7"; } } finally { if(in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } } return version; }