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.
*****Primeiros16bytesdeumarquivo.classcompiladoparaJava1.4:0000CAFEBABE00000030005C0A0022002D07.■.....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.\..".-.0010002E08002F0800300800310800320800..../..0..1..2..*****Primeiros16bytesdeumarquivo.classcompiladoparaJava6.0:0000CAFEBABE00000032005C0A0022002D07.■.....2.\..".-0010002E08002F0800300800310800320800..../..0..1..2.*****