如何在调试模式下运行时修改 Java 代码?

2022-09-02 11:49:53

如何启用Notch在Eclipse的这个视频中谈论的“运行时调试”?

作为测试,我希望能够编辑以下代码的输出,并在运行时将其更改为“Hello 运行时调试”。

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

答案 1

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

调试时,只需更改任何代码并保存它,Eclipse 会自动将修改后的代码传输到目标 VM。

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

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


答案 2

您需要确保选中“项目>自动生成”。否则,它可能无法正常工作。