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?
Odpowiedzi:
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.
źródło
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.
źródło