Ich habe gerade ein Video gesehen, das zeigt, wie Notch (of Minecraft Fame) Minecraft debuggt und verändert, während es läuft. Er unterbricht das Spiel, ändert etwas im Code und unterbricht dann das Spiel, wobei die Änderung sofort wirksam wird, ohne dass das Programm neu gestartet werden muss.
Wie funktioniert das? Mit welcher Technik wird das erreicht?
Antworten:
Java kann Hot-Swapping direkt ausführen. Wenn Sie eine IDE wie Eclipse verwenden, funktioniert dies für das Ändern von Methodenkörpern. Wenn Sie andere Codeänderungen anwenden möchten, möchten Sie möglicherweise ein Tool verwenden. JRebel ist ein Produkt, das mehr Fälle unterstützt.
Ich möchte für dieses Produkt kein Marketing betreiben, aber ich persönlich kenne keine andere Alternative. Auf der JRebel-Website gibt es einen schönen Feature-Vergleich .
Ich hoffe, das hilft.
quelle
Es heißt Hot Code Replace und ermöglicht einer IDE, laufenden Code über die Debugging-Schnittstelle zu ändern. Es wird seit Java 1.4.1 von Sun JVM unterstützt
Sofern Sie nicht die (kommerzielle) JRebel-JVM-Erweiterung verwenden, ist sie auf Änderungen innerhalb von Methodenkörpern beschränkt. Wenn Sie Methoden oder Klassen hinzufügen / entfernen oder Signaturen ändern, müssen Sie die JVM neu starten.
quelle