19

如何启用这个“运行时调试”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);
        }
    }
}

编辑:我修改了代码,现在我得到了我正在寻找的结果。Suraj Chandran 下面的回答对此进行了解释。

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);
}
4

4 回答 4

30

Eclipse 在调试期间支持热交换代码,开箱即用。

调试时,只要修改任意代码并保存,Eclipse 会自动将修改后的代码传输到目标虚拟机中。

请注意,您不能对代码进行结构更改,例如添加新方法、更改方法签名或添加新字段。但是您可以在方法中更改代码。

编辑:请注意,在调试期间更改代码将使该方法从头开始重新执行,重置该方法中的局部变量。

于 2012-09-30T12:13:08.177 回答
11

您需要确保选中Project > Build Automatically 。否则可能无法正常工作。

于 2014-09-17T06:24:25.507 回答
2

启用 Project-> Build Automatically 后,调试模式下的热交换代码对我来说没问题

于 2016-02-18T02:50:35.250 回答
1

我可能误解了这个问题,但是如果您在 Eclipse 中以调试模式(运行/调试)运行程序,您可以在程序运行期间编辑方法的内容(如果 JVM 支持的话)。通常,您不能更改导入、方法签名、类定义等,只能更改方法的内容。

于 2012-09-30T12:09:49.460 回答