Dekompilacja pliku *.jar, nie dekompiluje kilki plikow, $xxxx

0

Witajcie, nie mogę zdekompilować pliku .jar :) Używam http://jd.benow.ca, problemem jest to, że w przypadku kilku plików ma problem "Iternal error" : http://scr.hu/128t/tsg4h

1

Ja bym dołączył to jako bibliotekę do jakiegoś projektu w IntelliJ i wykorzystał ich wewnętrzny automatyczny dekompilator.

0

Dodałem do tego IDE tylko nie mogę znaleźć opcji dekompilacji :)

1

Nie musisz niczego szukać. Po prostu utwórz sobie z tego jara plik .class który cię interesuje (po lewej stronie tak samo jak zwykłe pliki źródłowe)

0

Dodałem http://scr.hu/128t/o180g Tylko gdzie teraz pokażą mi się pliki *.java ?

1

Nigdzie. IntelliJ pokaże ci zdekompilowane źródło pliku jeśli go sobie otworzysz. Ale nie wygeneruje ci całego zdekompilowanego projektu. Zresztą w większości sytuacji miałoby to raczej słabe zastosowanie, bo jeśli projekt był obfuskowany to bardzo możliwe że i tak nie będzie sie go dalo skompilować. A nawet jak nie był obfuskowany to może wymagać innych bibliotek których nie masz.

0

Tak, tylko jak otworzyć :) Zdekompilować na pewno się da. SS od innego użytkownika : http://i.imgur.com/2qdv7IN.png

1

Ja nie mówie że sie nie da. IntelliJ korzysta z : https://github.com/fesh0r/fernflower więc możesz tego narzędzia po prostu użyć ręcznie z konsoli ;]
A screen shot chyba niewiele mówi bo przecież ten projekt salem jest open source...

0

To nie jest projekt salem, tylko projekt nowego Haven And Hearth :) A on już nie jest Open Source :)

1

Kompilacja zwykle jest procesem mocno stratnym. Nie inaczej jest w przypadku kompilacji plików .java do plików .class. Odtworzenie oryginalnych plików .java z plików .class jest w ogólności niemożliwe (oprócz nierealistycznych przypadków, w których czyiś styl pisania kodu dokładnie odzwierciedla wyjście dekompilatora). Dodatkową trudność sprawia to, że Java umożliwia używanie instrukcji goto na poziomie bajtkodu, ale już na poziomie plików źródłowych nie pozwala. Na poziomie plików źródłowych Java nie pozwala też na umieszczanie instrukcji przed super w konstruktorze, ale już na poziomie bajtkodu takiego ograniczenia nie ma. Z tego powodu bardzo często dekompilacja do poprawnych plików .java bajtkodu powstałego z plików .scala jest z definicji niemożliwa.

Zamiana goto na ify i pętle jest dość karkołomnym przedsięwzięciem, jeżeli zakładamy, że mamy napisać narzędzie, które to robi automatycznie i nigdy nie zawodzi (pod warunkiem, że w ogóle się da). Takie narzędzie chyba nie istnieje.

0

W przypadku tego pliku na pewno jest to możliwe, wiec nie ma co gdybać na stratnością. Powstało już kilka edycji tego clienta gry a ja potrzebuje dodać kilka linijek tylko do jednej klasy. Jak dam wam plik *.jar będzie łatwiej ?

0

Jasne, jak przy okazji przelejesz na moje konto odpowiednią kwotę. Przecież podałem ci link do dekompilatora który ci to zdekompiluje jedną komendą. W czym problem?

0

Spróbuj edytować bajtkod wprost :]

1 użytkowników online, w tym zalogowanych: 0, gości: 1