java目前在做什么?

时间:2016-09-17 03:45:11

标签: java debugging reflection

我正在编写带有Java api的脚本,它编译为类文件并在我的虚拟机上执行(我无法访问此虚拟机,无法从内部调试我的类文件)。这些脚本需要可观察的数据才能执行,除非它们已在此虚拟机中执行,否则无法正常运行。作为执行这些类文件的方式的结果,据我所知,我无法使用IDE的内置调试器对它们进行调试。

我甚至没有编码词汇来搜索最后一个陈述的答案,所以如果我错了请纠正我。

无论如何,我确定的唯一方法是允许我调试这些脚本是经典的print-statement方法。这太糟糕了。但它的确有效。似乎api的整个社区都使用这种方法。

我有一个想法,我可以使用反射从我的类中执行时获取信息,但这仍然不能让我访问我正在寻找的逐行调试。

我想要做的是逐步监控脚本的执行(VM的每次计算)并存储有关这些计算的信息(类“bar”中的变量“foo”变为4在线“ soandso“)作为一种运行缓存,只要发生错误就会转储到系统控制台。

这可能吗?

1 个答案:

答案 0 :(得分:0)

您可以查看dynamic proxies

Here是一个非常好的解释。

使用动态代理,您可以输出(记录,发送为邮件,...)正在调用的方法以及传递给方法的参数。

这不完全是你想要的,但也许它会帮助你。