当前位置: 首页 > 面试题库 >

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

钱远
2023-03-14
问题内容

我如何启用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);
}

问题答案:

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

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

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

编辑:请注意,在html" target="_blank">调试过程中更改代码将使该方法从头开始重新执行,从而重置该方法中的局部变量。



 类似资料:
  • 我试图在调试模式下启动我的android应用程序,但每次我检查它说这是错误的。更进一步,在buildtypes中定义的buildconfigField甚至不会显示在BuildConfig中。 这是我的gradle文件: 因此,在Android Studio中,我为我的应用程序选择了build Variant“debug”,但当我在应用程序中点击一个断点并检查的值时,无法解析字段,并且无法解析

  • 最近我从旧的蝗虫版本(0.14.2)切换到1.3.1。以前,我可以使用命令WebsiteUser().run()在调试模式下运行,它会在所有断点上停止。 当我尝试使用相同的命令运行新版本时,会出现下一个错误: 文件“/home/user/PycharmProjects/my_test/venv/lib/python3.7/site packages/hocust/user/users.py”,第2

  • null 默认情况下,IntelliJ提供Ofc Maven。我已经尝试了mvnDebug tomcat7:run命令,但是intelliJ不能解析Maven内置命令行中的mvnDebug短语。也不能使用cmd命令行,因为我找不到“home”路径,因为maven是内置的IntelliJ。也尝试使用intelli,配置远程调试,但感到困惑。在“Maven Projects”窗口中也找不到tomcat

  • 问题内容: 我处于一个非常奇怪的位置(从我的java-newbie的角度来看): 我使用Eclipse编写了一个“ java程序”(一些带有类的.java文件),从本质上(分批)读取文本 .csv文件,“求值”其内容,并将结果写到 _out.csv文本文件中。要找到输入文件,它使用“文件选择器”(从此处获取示例:http : //docs.oracle.com/javase/tutorial/ui

  • 问题内容: 从最近开始,在Eclipse Galileo中以调试模式运行程序要慢得多。 我不知道有什么变化。 您知道可能是什么原因吗?正常运行它不是问题。 问题答案: 另一个“调试中断”是方法进入/退出断点的使用。 您是否尝试一次删除 所有 断点定义? 有时我认为Eclipse与其某些内部/显示状态不同步。也许您应该尝试设置新的工作空间(而非副本)。有时这可以帮助我从虚假功能中恢复过来。 这是您可

  • 问题内容: 我有一些人已经解决过的问题,但问题是我不了解我的实现中缺少什么。 我的hibernate代码的一部分如下: 问题是我想通过更改hibernate.connection.url属性中的“数据库”一词来选择要在运行时中使用的数据库。 在javaswing中,我正在实现此功能: } 然后,我用按钮检查所做的更改,从组合框中选择所需的数据库: 现在,debug1的输出正在更改,因此我在此打印中