Jak debugować / zmieniać kod Java podczas działania programu?


15

Właśnie widziałem wideo pokazujące, jak Notch (sławna gra Minecraft) debuguje i zmienia Minecraft podczas jego działania. Wstrzymuje grę, zmienia coś w kodzie, a następnie wstrzymuje grę, w której zmiana zaczyna obowiązywać natychmiast, bez potrzeby ponownego uruchamiania programu.

Jak to działa? Jaką technikę stosuje się do tego celu?


1
I tak jest zakres procesu kontroli jakości Notcha.
DeadMG


Lol, też przyszedł tu po tym filmie.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Odpowiedzi:


4

Java może wykonywać wymianę na gorąco od razu po wyjęciu z pudełka. Jeśli użyjesz IDE, takiego jak Eclipse, będzie działać na zmianę ciał metod. Jeśli chcesz zastosować inne zmiany kodu, możesz użyć narzędzia. JRebel to produkt, który obsługuje więcej przypadków.

Nie chcę prowadzić marketingu tego produktu, ale osobiście nie znam innej alternatywy. Na stronie JRebel jest ładne porównanie funkcji .

Mam nadzieję, że to pomaga.


+1 JRebel doskonale nadaje się do „kodowania na gorąco” poza środowiskiem IDE, takim jak Eclipse.
Jalayn

4

Nazywa się to zastępowaniem gorącego kodu i umożliwia IDE zmianę działającego kodu za pośrednictwem interfejsu debugowania. Jest obsługiwany przez Sun JVM od Java 1.4.1

Jednakże, chyba że użyjesz (komercyjnego) rozszerzenia JVeb JVM, jest ono ograniczone do zmian w treściach metod. Jeśli dodasz / usuniesz metody lub klasy lub zmienisz podpisy, musisz ponownie uruchomić JVM.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.