Kategorie szkoleń | Egzaminy | Kontakt

Odpowiedź (1)

  • 2

Można do tego celu użyć deassemblera kodu bajtowego (program narzędziowy javap), dostępnego standardowo w JDK.

Przykładowo, po zdeassemblowaniu pliku App.class z pakietu pl.altkom za pomocą polecenia:

javap -verbose pl/altkom/App

otrzymamy:

Classfile /C:/Users/lproboszcz/Desktop/maven-tests/test01/target/classes/pl/altkom/App.class
  Last modified 2016-05-05; size 533 bytes
  MD5 checksum ad1caeca3f7357c19aa1a6fc634ee1fa
  Compiled from "App.java"
public class pl.altkom.App
  minor version: 0
  major version: 49
  flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
   #1 = Methodref          #6.#20         // java/lang/Object."<init>":()V
   #2 = Fieldref           #21.#22        // java/lang/System.out:Ljava/io/PrintStream;
   #3 = String             #23            // Hello World!

... itd.

Użytą wersję Javy identyfikuje parametr major version. I tak:

  • wartość 46 odpowiada wersji 1.2
  • wartość 47 odpowiada wersji 1.3
  • wartość 48 odpowiada wersji 1.4
  • wartość 49 odpowiada wersji 5
  • wartość 50 odpowiada wersji 6
  • wartość 51 odpowiada wersji 7
  • wartość 52 odpowiada wersji 8

Odpowiedź deassemblera można dodatkowo przefiltrować w poszukiwaniu określonej wartości. Na systemie Windows odpowiednie polecenie będzie wyglądać następująco:

javap -verbose pl/altkom/App | findstr "major"

Na Unixie polecenie findstr trzeba zastąpić grep'em.

 

 

 

 

 

  • Odpowiedział
  • @ | 05.05.2016
  • TRENER MODERATOR ALTKOM AKADEMII