【发布时间】:2020-05-15 12:12:16
【问题描述】:
我想在没有调试器的情况下控制java程序的执行,例如下面有一个类
1. class Foo {
2. void bar() {
3. print("i am 3rd line of class Foo");
4. print("i am 4th...");
5. if(true)
6. print("i am 6th");
7. }
8. }
我想知道 java 什么时候会执行上述任何行,直到我不告诉它继续执行它应该等我!
如果您熟悉 eclipse IDE 中的 debugger,您肯定会知道如果我们将 breakpoint 放置在 java 源代码中的某个位置, debugger 在该行暂停执行并等待直到我们点击step in 或next 按钮以执行下一行或程序语句。基本上它是控制程序的执行加上它获取所有信息,如声明的变量、当前运行的函数、当前执行行等。我也想要相同的功能,但不是debugger i想用我自己的java代码。你可以说我想在代码中调试java代码。
例如:如果java正在执行第3行,它应该告诉我我是(java) 将执行 第 3 行,直到我不告诉它继续它应该等待。
另一个例子:
5. void bar() {
6. // Inform me that java is going to execute line no. 7
7. print("Printing something...");
8. // Again inform me that java is executing line no. 9
9. print("bar");
10.}
简而言之,我想逐行控制我的程序的执行,我不关心性能只是想实现我的目标!
我试图让这个问题尽可能简单,但如果您在理解上仍有问题(因为它有点棘手),请在下面的评论框中告诉我!
提前谢谢你;)
【问题讨论】:
-
Learning about JDI 可能会有所帮助。或不。它允许您编写一个充当调试器的程序:)
-
这很好,但我不想使用外部程序,我可以使用 Eclipse 或任何其他 ide 来代替它。基本上我想控制其中的java程序
-
您考虑过 JMX(Java 管理扩展)吗?
-
@vsfDawg 如果没有外部工具它可以工作吗?我的意思是它应该在我的 java 程序中工作