java - 在远程服务器上的 linux 控制台中调试或跟踪 java 应用程序

标签 java linux debugging console

我有一个不是我写的 java 应用程序(实际上,我根本不擅长 java)。我没有它的源代码,只有一个随时可用的二进制文件。在某些环境中,我遇到了根本没有任何意义的奇怪问题。我强烈怀疑这只是一个配置问题,但没有适当的文档和任何人询问,我不得不采用试错法来试图找出它还需要什么,但没有成功。

我最后的希望是以某种方式从中获取更多运行时调试/日志信息,但不幸的是它没有日志记录功能。

我在这里检查了类似的问题,虽然他们提出了一种调试 Java 应用程序的方法,但这意味着您在某种 IDE(如 Eclipse)中有源代码,可以远程连接到它等。对于像我这样的外行来说,开销太大了,记住,我对 Eclipse 的经验也为零,也没有任何来源。

所以我希望可能仍然有一些工具可以“侵入”正在运行的 java 应用程序并打印一些关于它实际做什么的有用信息。类似于 strace 工具对常规 exe 文件的作用。

Java 有类似的东西吗?

最佳答案

嗯,有一些分析工具;这也支持仪器。使用此类工具,您可以创建所有方法调用等的完整跟踪。

但是如果没有源代码,那对你没有帮助。因此,我认为您需要两个东西:

  1. 您需要获取源代码(例如通过 Java decompiler 运行类文件)
  2. 然后您需要研究资料来源。当然这意味着:你也必须学习 java。

如果“1”。行不通……你死定了。你看,你只是假设你正在处理配置问题,但本质上:很多事情都是可能的。如果您没有可用的源代码,您将如何修复错误?!

如果“2”。超出了您想要/可以做的事情;那么你也进入了死胡同。

长话短说:周围没有奇迹。您无法调试您无权“访问”的应用程序。所以你最好三思而后行;并花了一些时间思考“B 计划”(如何在不丢面子/工作/声誉/...的情况下摆脱这种情况)。到目前为止,您告诉我们的情况听起来像是您失败的可能性很高。所以最好为此做好准备。

关于java - 在远程服务器上的 linux 控制台中调试或跟踪 java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39131300/

相关文章:

java - HTTP请求实时应用,性能技巧

linux - Linux + windows + MAC下如何获取系统默认网关地址

linux - Jmeter 执行脚本但提供空白报告

javascript - 调试触发 alert() 的 JS 代码

iphone - Xcode 7.1 执行调试时总是崩溃

java - Java webapp 中的 Groovy Web 控制台?

java - 如何在没有 STOMP 的情况下使用支持 Spring Websocket 的 Spring Security?

java - Java 中的 @Value 与单例

执行完成后关闭终端

python - 我可以让 pdb 立即开始调试吗?