Para saber qué versión JDK se ha utilizado en la compilación de un fichero Java, podemos utilizar este algoritmo que encontré por internet basado en las especificaciones de Sun.
Este código lo utilizaba en el año 2009. No he podido probarlo en versiones recientes.
Código para saber con qué versión JDK de Java se ha compilado un fichero class
Esta sería la clase Java a probar:
import java.io.*;
public class Version {
public static void main(String[] args) throws Exception {
if (args.length != 1) {
System.err.println("Usage: java Version .class file");
System.exit(1);
}
if (! new File(args[0]).exists()) {
System.err.println(args[0] + " does not exist!");
System.exit(2);
}
DataInputStream dis = new DataInputStream(
new FileInputStream(args[0]));
int magic = dis.readInt();
if (magic != 0xcafebabe) {
System.err.println(args[0] + " is not a .class file");
System.exit(3);
}
int minor = dis.readShort();
int major = dis.readShort();
System.out.println("class file version is " + major + "." + minor);
String version = null;
if (major < 48) {
version = "1.3.1";
} else if (major == 48) {
version = "1.4.2";
} else if (major == 49) {
version = "1.5";
} else if (major == 50) {
version = "6";
} else {
version = "7";
}
System.out.println("You need to use JDK " + version + " or above");
}
}
Faltaría por investigar si existe alguna forma de saber qué "update" de la JDK se ha utilizado, para saber si se ha usado la jdk1.6.0_14 o jdk1.6.0_16 por ejemplo. Cuando sepa cómo se hace actualizaré el código ;).



¡Hola! Soy Javier. Soy informático y me gusta documentar todo lo que aprendo. En mi blog te enseño todo lo que sé y cómo puedes aprender a crear tu propia web, mejorar el SEO y aplicar técnicas de Marketing Digital para conseguir mayor visibilidad. Suscríbete para no perderte ninguna de mis guías sobre WordPress, posicionamiento SEO o Marketing Digital.
