Как изменить код Java во время работы в режиме отладки?
Как включить эту функцию "Отладка в Runtime" Notch говорит о этом видео в Eclipse?
В качестве теста я хотел бы иметь возможность редактировать вывод следующего кода и изменять его на "Hello Runtime Debugging" во время его запуска.
public class HelloWorld {
public static void main(String[] args) throws InterruptedException {
doIt();
}
private static void doIt() throws InterruptedException {
for (int i = 0; i < 1000; ++i) {
System.out.println("Hello World " + i);
Thread.currentThread().sleep(100);
}
}
}
EDIT: Я изменил код, теперь получаю результаты, которые я искал. Ответ Сурай Чандрана ниже объясняет это.
private static void doIt() throws InterruptedException {
for (int i = 0; i < 1000; ++i) {
print(i);
Thread.currentThread().sleep(100);
}
}
private static void print(int i) {
System.out.println("Hello Sir " + i);
}
Ответы
Ответ 1
Eclipse поддерживает горячую замену кода во время отладки, из коробки.
При отладке, просто измените любой код и сохраните его, eclipse автоматически перенесет измененный код на целевую виртуальную машину.
Обратите внимание, что вы не можете вносить структурные изменения в код, например, добавлять новые методы, изменять подпись метода или добавлять новые поля. Но вы можете изменить код внутри метода.
EDIT: обратите внимание, что изменение кода во время deubgging приведет к тому, что этот метод повторно выполнит форму начала, сбросив локальные переменные в этом методе.
Ответ 2
Вам нужно убедиться, что Project > Build Automatically установлен.
В противном случае это может не сработать.
Ответ 3
Я могу неправильно понять вопрос, но если вы запустите программу в Eclipse в режиме отладки (Run/Debug), вы можете редактировать содержимое методов во время запуска программы (если JVM поддерживает ее). Регулярно вы не можете изменять импорт, сигнатуры методов, определения классов и т.д., Просто содержание методов.
Ответ 4
После включения Project- > Build Automatically, режим горячей замены в режиме отладки подходит мне