在某种情况下,我们需要查看类是用什么版本的Jdk编译的,下面这段代码就可以知道:
package com.dingfei.j2ee.basic;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
/**
* @author Jeffy Ding
*
*/
public class ClassVersionView {
public static void main(String[] args) throws IOException {
for (int i = 0; i < args.length; i++) {
viewClassVersion(args[i]);
}
viewClassVersion("E:\\test\\mavenproj\\target\\classes\\mavenproj\\mavenproj\\App.class");
}
public static void viewClassVersion(String filename) throws IOException {
DataInputStream in = null;
try {
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);
} catch (Exception e) {
e.printStackTrace();
} finally {
in.close();
}
}
}