Як налагодити / змінити код Java під час роботи програми?


15

Я щойно побачив відео, на якому показано, як Notch (про славу Minecraft) налагоджує та змінює Minecraft під час роботи. Він призупиняє гру, щось змінює в коді, а потім призупиняє гру, де зміна набуває негайного ефекту без необхідності перезапускати програму.

Як це працює? Який метод використовується для досягнення цього?


1
Таким чином, є ступінь QA-процесу в Notch.
DeadMG

1
Згідно старої Q & A на переповненні стека , то це може бути зроблено з JPDA функцією , яка робить «HotSwap» клас заміни файлу
комар

Лол, також прийшов сюди після цього відео.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Відповіді:


4

Java може робити гарячу заміну з коробки. Якщо ви використовуєте IDE, як Eclipse, він буде працювати для зміни методів-методів. Якщо ви хочете застосувати інші зміни коду, ви можете скористатися інструментом. JRebel - продукт, який підтримує більше випадків.

Я не хочу займатися маркетингом цього продукту, але я особисто не знаю іншої альтернативи. На веб-сайті JRebel є приємне порівняння функцій .

Сподіваюся, що це допомагає.


+1 JRebel чудово підходить для «гарячого кодування» поза IDE, наприклад Eclipse.
Джалайн

4

Це називається гарячим кодом, що замінює і дозволяє IDE змінювати живий запущений код через інтерфейс налагодження. Він підтримується Sun JVM з Java 1.4.1

Однак, якщо ви не використовуєте (комерційне) розширення JRebel JVM, воно обмежується змінами в органах методу. Якщо ви додаєте / видаляєте методи або класи або змінюєте підписи, вам доведеться перезапустити JVM.


Тепер правильне посилання: wiki.eclipse.org/FAQ_What_is_hot_code_replace%3F
П'єр
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.