如何在不使用IDE的情况下调试Java程序?

如何在Java程序中打开和关闭调试? 如何在不重新编写java程序的情况下打开和关闭调试?

不使用IDE进行调试

1)你可以使用Assertions编写java程序。 什么时候你想要你可以启用/禁用它们。

2)您可以使用配置了log4j.properties的日志。 在您的java程序中,您可以随时指定信息和调试日志,当您想要显示调试或信息日志等时,可以在log4j.properties中进行简单配置…

使用jdb从命令行进行调试。

话虽如此,我不知道“关闭和打开调试”意味着什么。

你必须考虑两件事:

  • 您只需要编译一次代码以获得调试信息; 默认情况下,生成源文件和行号调试信息( 文档 );
  • 调用或不调试的能力在您调用JVM时受到控制。

对于Oracle的JVM,这组选项将允许插入在端口12345(TCP)上实现JDWP(Java调试线协议)的调试器:

 -Xdebug -Xrunjdwp:server=y,suspend=n,transport=dt_socket,port=12345 

注意suspend=n ; 如果你执行suspend=y ,除非你实际连接调试器,否则JVM不会运行…

最后,一个很好的链接解释了JDWP背后的角落和缝隙,JVM [DPT] I: 这里

这里也是jdb的教程,其他答案已经提到了。