我从来没有做过或见过这样的事情,但这似乎是一个有趣的问题。我的想法是使用java 调试器 (jdb)来运行代码,而不仅仅是java
命令。
您可以逐行(通过step
jdb 中的命令)逐步执行代码,并且每次执行一行时都会吐出其行号。这需要 PHP 方面的一点帮助(它必须解析行号并执行下一步命令),但行号就在那里。这是一个非常基本的 java 程序的示例输出。
Java (TestClass.java)
public class TestClass {
public static void main(String[] args) {
System.out.println("foo");
System.out.println("bar");
}
}
jdb(运行后的jdb TestClass javac TestClass.java
)
Initializing jdb ...
> stop at TestClass:3
Deferring breakpoint TestClass:3.
It will be set after the class is loaded.
> run
run TestClass
Set uncaught java.lang.Throwable
Set deferred uncaught java.lang.Throwable
>
VM Started: Set deferred breakpoint TestClass:3
Breakpoint hit: "thread=main", TestClass.main(), line=3 bci=0
3 System.out.println("foo");
main[1] step
> foo
Step completed: "thread=main", TestClass.main(), line=4 bci=8
4 System.out.println("bar");
main[1] step
> bar
Step completed: "thread=main", TestClass.main(), line=5 bci=16
5 }
main[1] step
>
The application exited