Java

Averiguar la versión del JDK de un fichero class de Java

En Java, Programación por trellat0 Comentarios

En proyectos Java se suele optar por la reutilización de clases o el uso de clases ya compiladas a modo de librerías. Puede ser que se tenga el fichero class de la misma, pero no el código fuente, por lo que se va heredando hasta que se utiliza una versión del JDK (Java Development Kit) de Java superior y deja de funcionar. En estos casos es interesante saber cuál es la versión del JDK de un fichero class que esté dando el error.

El error suele ser el siguiente.

Unsupported major.minor version

Por suerte, en el fichero class suele estar incluida esta información, sólo es necesario un decompilador de Java. Y de nuevo por suerte, en cada distribución del JDK suele estar incluido un decompilador en la carpeta bin. El ejecutable del decompilador es javap. Se puede utilizar en conjunto con una tubería desde la línea de comandos para recuperar directamente el valor de la Major Version, de la siguiente manera, donde NombreClase.class es el nombre de la clase que se quiere comprobar y la cual se encuentra en la ruta actual:

En Windows.

javap -verbose NombreClase.class | findstr "major"

En Linux.

javap -verbose NombreClase.class | grep "major"

Esta instrucción devuelve un número, el cual sólo faltará comprobarlo en la siguiente tabla para comprobar con qué versión se corresponde y ya se habrá obtenido la versión del JDK de un fichero class de Java.

Major VersionJDK Version
45.31.1
461.2
471.3
481.4
495 (1.5)
506 (1.6)
517 (1.7)
528 (1.8)

Deja un comentario