读书人

判断编译的class资料JDK版本号

发布时间: 2012-12-24 10:43:13 作者: rapoo

判断编译的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       version45       3           1.045       3           1.146       0           1.247       0           1.348       0           1.449       0           1.550       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 correctelse if(major > 50) {version = "1.7";}} finally {if(in != null) {try {in.close();} catch (IOException e) {e.printStackTrace();}}}return version;}
?

读书人网 >编程

热点推荐