Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Intellij idea调试中跳过行?_Java_Debugging_Intellij Idea - Fatal编程技术网

Java 如何在Intellij idea调试中跳过行?

Java 如何在Intellij idea调试中跳过行?,java,debugging,intellij-idea,Java,Debugging,Intellij Idea,假设我有这样的java代码(仅作为示例): public void someMethod(){ INTA=3; int b=2;//调试时不能跳过“行执行”。可以按F8键跳过。在IntelliJ甚至Eclipse中都不可能跳过行的执行。 你们能做的唯一一件事就是你们能做一步跨越(F8)-这将逐行追踪,而不需要 进入任何函数 还有一件事是Step out(Shift+F8)-它将通过在单个步骤的行之间执行直接转到下一个调试点。调试器不可能不执行部分代码 但是,可以执行额外的代码并更改变量的值,因此

假设我有这样的java代码(仅作为示例):

public void someMethod(){
INTA=3;

int b=2;//调试时不能跳过“行执行”。可以按F8键跳过。

在IntelliJ甚至Eclipse中都不可能跳过行的执行。 你们能做的唯一一件事就是你们能做一步跨越(F8)-这将逐行追踪,而不需要 进入任何函数


还有一件事是Step out(Shift+F8)-它将通过在单个步骤的行之间执行直接转到下一个调试点。

调试器不可能不执行部分代码

但是,可以执行额外的代码并更改变量的值,因此,如果需要在调试期间排除执行中的一行,则必须更改代码以准备进行此类调试

public void someMethod() {
    int a = 3;
    int b = 2;
    boolean shouldRun = true;
    if (shouldRun) {
        a = b + 2;
    }
    System.out.prinln(a);
}
然后设置一个断点,在不停止执行的情况下更改shouldRun的值

注意

  • 未选中挂起
  • 日志计算表达式用于在达到断点时更改变量

  • 只有在使用热插拔或换言之,代码重新加载工具-在运行时添加代码更改/新代码时,才可以跳过行。热插拔是在不关闭系统的情况下更换组件的功能。热插拔还可以指在不中断程序执行的情况下更改程序运行代码的能力离子

    有各种热交换工具,如:JRebel()或HotSwapAgent()

    您不必重新构建整个应用程序来重新加载代码更改,这可以节省大量时间。只需使用IDE中内置的编译器,热交换代理/工具即可将代码重新加载到JVM中,而无需运行完整的构建过程


    在这种情况下,它实际上不会跳过,但您可以对行进行注释/更改并重新加载。此工具非常棒!!!!它大大加快了开发/调试过程

    ,正如ntotomanov在这里所述,您可以使用热交换。
    但我只是补充说,我使用远程调试来调试基于Docker的应用程序,所以如果我想要这种功能,我只需注释掉代码,然后转到Build->Recompile class或Rebuild Project。然后Intellij发布Build&尝试热交换代码!如果你做了注释掉代码之类的小事,大多数时候都会成功s、 愉快的调试。

    Intellij最近发布了一篇博客文章,介绍了一个名为“跳转到线路”的插件,它可以实现这一点,尽管Intellij本身没有这一功能。令人惊讶的是,Intellij仍然没有这一功能,而Visual Studio已经拥有它这么多年了

    public void someMethod() {
        int a = 3;
        int b = 2;
        boolean shouldRun = true;
        if (shouldRun) {
            a = b + 2;
        }
        System.out.prinln(a);
    }
    

    int a=b+2;
    ”这个可以编译吗?Set Next语句已经在Visual Studio中使用多年了。否。“恢复程序”(F9)将持续到下一个断点。Step Out将运行当前方法,并在该方法存在时停止调试器。哇,这是一个难以置信的解决方案。跳过代码执行是一个多么好的技巧,也可以在生产代码上使用它。您还可以为调用此窗口添加热键或路径吗?不清楚在何处使用它在2016.2.5中,我使用ctrl+f8,然后使用ctrl+shift+f8两次进入该对话框。在PhpStorm中,可以添加
    return[返回值]
    监视和调试器将退出IntelliJ中的函数。如果您想以任何一种方式终止方法执行,也可以强制返回或抛出异常。您能让它工作吗?在ubuntu的最新版本中安装的插件很好,但这一特殊行没有显示。没有其他说明ns-是否有一些快捷方式,我需要点击使它出现?谢谢!