4

ユビキタスな 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 行が出力されたのか、なぜデバッガーが指定したブレークポイントで停止しなかったのかということです。

4

1 に答える 1

5

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

試してみて、問題が解決することを確認してください。

于 2015-07-18T18:17:57.987 に答える