查看Java class version

在某种情况下,我们需要查看类是用什么版本的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();
		}
	}
}

你可能感兴趣的:(java,jdk)