Java 调试器在不中断的情况下运行应用程序

Java Debugger runs application without breaking

我有无处不在的 HelloWorldApp.java 文件

/**
 * The HelloWorldApp class implements an application that
 * simply prints "Hello World!" to standard output.
 */
class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

我运行:

javac HelloWorldApp.java

然后我运行:

jdb HelloWorldApp

我得到:

Initializing jdb ...
> 

我输入:

stop at HelloWorldApp.main:7

出现提示的地方

然后我得到

Deferring breakpoint HelloWorldApp.main:7.
It will be set after the class is loaded.
>

我输入:

run

出现提示的地方

然后我得到

Set uncaught java.lang.Throwable
Set deferred uncaught java.lang.Throwable
> 
VM Started: Hello World!

The application exited

我没有在最后一个提示中输入任何内容,它只是退出而没有中断。我的问题是为什么它输出那些 Throwable 行,为什么调试器没有在我给它的断点处停止?

我刚刚在 JDB 文档中检查了停止的语法

stop in <class-name>.<method-name>  Stop on entry to the given method.
stop at <class-name>:<line-number>  Stop at the given line.

我认为你的停止命令应该是以下之一

stop in HelloWorldApp.main 
stop at HelloWorldApp:7

试试看是否可以解决您的问题!