要设置哪些 Java 命令行选项以允许远程调试 JVM?

新手上路,请多包涵

我知道有一些 JAVA_OPTS 可以设置为远程调试 Java 程序。

它们是什么,它们是什么意思?

原文由 paulgreg 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 659
2 个回答

我已将 这篇文章 加入书签,了解如何为 Java 5 及更低版本设置它。

基本上 运行它

 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044

对于 Java 5 及更高版本,运行它:

 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044

如果您希望 Java 在执行应用程序之前 等待您连接,请将 suspend=n 替换为 suspend=y

原文由 Hans Sjunnesson 发布,翻译遵循 CC BY-SA 4.0 许可协议

在 Java 5.0 之前,使用 -Xdebug-Xrunjdwp 参数。这些选项在以后的版本中仍然有效,但它将以解释模式而不是 JIT 运行,后者会更慢。

从 Java 5.0 开始,最好使用 -agentlib:jdwp 单个选项:

 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044

-Xrunjdwpagentlib:jdwp 参数的选项是:

  • transport=dt_socket : 表示连接JVM的方式(socket是个不错的选择,可以用来调试远方的电脑)
  • address=8000 : TCP/IP 端口公开,从调试器连接,
  • suspend=y :如果为“y”,则告诉 JVM 等待调试器连接后开始执行,否则(如果为“n”),立即开始执行。

原文由 paulgreg 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题