/*
* This code is distributed under The GNU Lesser General Public License (LGPLv3)
* Please visit GNU site for LGPLv3 http://www.gnu.org/copyleft/lesser.html
*
* Copyright Denis Pavlov 2009
* Web: http://www.genericdtoassembler.org
* SVN: https://svn.code.sf.net/p/geda-genericdto/code/trunk/
* SVN (mirror): http://geda-genericdto.googlecode.com/svn/trunk/
*/
package com.inspiresoftware.lib.dto.geda.utils;
import org.junit.Ignore;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
/**
* Manual check for class version.
*
* major minor Java platform 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
*
* @author denispavlov
*
*/
@Ignore
public class ClassVersionChecker {
/**
* @param args args
* @throws IOException exp
*/
public static void main(final String[] args) throws IOException {
final String[] files = args;
for (int i = 0; i < files.length; i++) {
checkClassVersion(files[i]);
}
}
private static void checkClassVersion(final String filename)
throws IOException {
DataInputStream in = new DataInputStream(new FileInputStream(filename));
final int marker = 0xcafebabe;
int magic = in.readInt();
if (magic != marker) {
System.out.println(filename + " is not a valid class!");
}
int minor = in.readUnsignedShort();
int major = in.readUnsignedShort();
final String version;
final int java5 = 49;
final int java4 = 48;
final int java3 = 47;
if (major > java5) {
version = "1.6";
} else if (major > java4) {
version = "1.5";
} else if (major > java3) {
version = "1.4";
} else {
version = " < 1.4";
}
System.out.println(filename + ": " + major + " . " + minor + " --> java " + version);
in.close();
}
}