Подтвердить что ты не робот

Как изменить код 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);
}
4b9b3361

Ответ 1

Eclipse поддерживает горячую замену кода во время отладки, из коробки.

При отладке, просто измените любой код и сохраните его, eclipse автоматически перенесет измененный код на целевую виртуальную машину.

Обратите внимание, что вы не можете вносить структурные изменения в код, например, добавлять новые методы, изменять подпись метода или добавлять новые поля. Но вы можете изменить код внутри метода.

EDIT: обратите внимание, что изменение кода во время deubgging приведет к тому, что этот метод повторно выполнит форму начала, сбросив локальные переменные в этом методе.

Ответ 2

Вам нужно убедиться, что Project > Build Automatically установлен. В противном случае это может не сработать.

Ответ 3

Я могу неправильно понять вопрос, но если вы запустите программу в Eclipse в режиме отладки (Run/Debug), вы можете редактировать содержимое методов во время запуска программы (если JVM поддерживает ее). Регулярно вы не можете изменять импорт, сигнатуры методов, определения классов и т.д., Просто содержание методов.

Ответ 4

После включения Project- > Build Automatically, режим горячей замены в режиме отладки подходит мне