这是我在java中的第一个项目,我想将jdb作为调试工具,但我遇到了一些问题。你能帮帮我吗?
带有" main"的文件功能是" Frame.java"。我在同一个库中也有很多其他.java文件,它们都是同一个包的一部分。
要编译我使用:
javac -d classes/ -cp classes/ *.java
所以我的.class文件位于目录classes / packagename /
中要执行我使用的程序:
java -cp classes/ packagename.Frame
我不确定这是否是最佳方式,但它已经为我现在想做的一切工作。
要进行调试,以下是我尝试过的众多命令中的两个命令的输出:
$ jdb Frame
Initializing jdb ...
> stop in Frame.main
Deferring breakpoint Frame.main.
It will be set after the class is loaded.
> run
run Frame
Set uncaught java.lang.Throwable
Set deferred uncaught java.lang.Throwable
>
VM Started: Erreur : impossible de trouver ou charger la classe principale Frame
The application exited
和第二个:
$ jdb -launch Frame
Set uncaught java.lang.Throwable
Set deferred uncaught java.lang.Throwable
Initializing jdb ...
>
VM Started: No frames on the current call stack
main[1] next
> Erreur : impossible de trouver ou charger la classe principale Frame
The application exited
错误消息表示"错误:无法找到或加载主类框架"。
我做错了什么?
提前谢谢。
答案 0 :(得分:2)
您还需要向classpath
提供jdb
。以下命令有效。
jdb -classpath classes1 packagename.mainclass
$ jdb -classpath classes1 packagename.mainclass
Initializing jdb ...
> run
run packagename.mainclass
Set uncaught java.lang.Throwable
Set deferred uncaught java.lang.Throwable
>
VM Started: Hello//...........
The application exited