Dlaczego konwertować CLASS na TXT?
Plik .class to skompilowany binarny bajtkod i nie można go odczytać jako tekst bez przetworzenia. Programiści deasemblują lub dekompilują go do formatu .txt, aby sprawdzić działanie klasy, gdy oryginalny kod źródłowy .java jest niedostępny, aby porównać dwie skompilowane wersje lub udokumentować publiczne API biblioteki.
Jak przekonwertować CLASS na TXT
javap (JDK) FREE
Uruchom javap -c -p MyClass w terminalu, aby wyświetlić instrukcje bajtkodu, a następnie przekieruj wynik do pliku za pomocą > MyClass.txt. Dodaj -verbose, aby uzyskać szczegóły puli stałych i wersji klasy.
JD-GUI OPEN-SOURCE
Przeciągnij plik .class do JD-GUI, a w edytorze pojawi się zrekonstruowany kod źródłowy Java. Użyj File > Save All Sources, aby wyeksportować go jako plik .java (zwykły tekst) i w razie potrzeby zmień nazwę na .txt.
CFR OPEN-SOURCE
Uruchom java -jar cfr.jar MyClass.class > MyClass.txt, aby przekierować zrekonstruowany kod źródłowy Java bezpośrednio do pliku tekstowego.
O tych formatach
Plik CLASS to skompilowany kod bajtowy Java - wynik działania polecenia javac na pliku źródłowym .java. Aby go uruchomić, musisz mieć zainstalowane środowisko Java (JDK), a następnie użyć…
Otwórz szczegóły .CLASS →Plik TXT to czysty, niesformatowany tekst - najprostszy format dokumentu na każdym komputerze. Kliknij go dwukrotnie: Windows otworzy go w Notepad, macOS w TextEdit, a Linux w gedit. Nie…
Otwórz szczegóły .TXT →Jakość i na co uważać
- Plik
.classzaczyna się od magicznych bajtów0xCAFEBABE- otwarcie go w edytorze tekstu pokaże binarne „śmieci”, a nie czytelną zawartość. - Wynik
javapto mnemoniki bajtkodu (invokevirtual,aloaditp.), a nie kod źródłowy Java; użyj JD-GUI lub CFR, jeśli potrzebujesz wyniku przypominającego kod źródłowy. - Dodaj
-verbosedojavap, aby uwzględnić w wyniku wersję główną pliku klasy, pulę stałych i tabele atrybutów.
Najczęściej zadawane pytania
Jaka jest różnica między wynikiem javap a wynikiem dekompilatora?
javap pokazuje instrukcje bajtkodu (mnemoniki); JD-GUI i CFR rekonstruują składnię źródłową Java - oba rozwiązania generują zwykły tekst, ale znacząco różnią się czytelnością.Czy muszę instalować coś dodatkowego, aby używać javap?
javap jest dostarczany z każdą instalacją JDK; jeśli masz zainstalowane narzędzia programistyczne Java, jest on już dostępny.Czy mogę przekonwertować plik .class na .txt bez instalowania Javy?
javap, JD-GUI i CFR wymagają Javy do działania, więc instalacja JDK lub JRE jest niezbędna.