¿Cómo puedo saber si una clase de Java se compiló para su uso en una java 6 vm?¿Hay alguna forma de saber si se compiló una clase para java6?
¿Hay alguna manera fácil?
¿Cómo puedo saber si una clase de Java se compiló para su uso en una java 6 vm?¿Hay alguna forma de saber si se compiló una clase para java6?
¿Hay alguna manera fácil?
Está en el class file format specification. El WP article on the subject incluye el conjunto actual de constantes de número de versión.
Mediante el uso de un java decompiler
... eso no va bien, al menos no con jd-gui. Este no ofrece una vista en los metadatos de un archivo de clase. (probado rápidamente con el V0.3.2 real). Entonces, con este método, debería buscar el uso de clases/métodos que no han estado disponibles hasta Java 1.6. –
Inexact Andreas_D, la versión del compilador se muestra mediante JD-GUI: arrastre y suelte un archivo de clase y mueva el mouse sobre la pestaña. –
En UNIX,
$ javap -classpath <classpath> -verbose foo.Bar \
| grep -q 'major version: 50' && echo yep || echo nope
gracias @ Matt b.
buena respuesta gracias! – feniix
Estaba buscando algo así como un comando, o simplemente mirando un encabezado del archivo o algo así. Pero su respuesta es la más cercana a lo que estaba buscando hasta ahora. – feniix
'javap -verbose -classpath ... com.company.YourClassName' imprimirá los números de versión para usted –
ya que matt b no hizo que esa sea una respuesta real, y nadie dio el número mágico (50), agregué una respuesta mía, y me hizo un poco más fácil obtener una respuesta sí/no. –