Entretanto, pode-se pegar aquele campo que existe em cada arquivo .class, indicando qual é o “target” da compilação (embora o “target” não indique se o .class depende de métodos ou classes que existem em determinada versão do Java ou não).
Esse campo é o byte na 8a. posição do arquivo .class. Esse byte é 0x2E para Java 1.2, 0x2F para Java 1.3, 0x30 para o Java 1.4, 0x31 para o Java 5.0, 0x32 para o Java 6.0 e assim por diante.
***** Primeiros 16 bytes de um arquivo .class compilado para Java 1.4:
0000 CA FE BA BE 00 00 00 30 00 5C 0A 00 22 00 2D 07 .■.....0.\..".-.
0010 00 2E 08 00 2F 08 00 30 08 00 31 08 00 32 08 00 ..../..0..1..2..
***** Primeiros 16 bytes de um arquivo .class compilado para Java 5.0:
0000 CA FE BA BE 00 00 00 31 00 5C 0A 00 22 00 2D 07 .■.....1.\..".-.
0010 00 2E 08 00 2F 08 00 30 08 00 31 08 00 32 08 00 ..../..0..1..2..
***** Primeiros 16 bytes de um arquivo .class compilado para Java 6.0:
0000 CA FE BA BE 00 00 00 32 00 5C 0A 00 22 00 2D 07 .■.....2.\..".-
0010 00 2E 08 00 2F 08 00 30 08 00 31 08 00 32 08 00 ..../..0..1..2.
*****