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

2022-08-31 04:47:14

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

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


答案 1

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

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

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

上的选项或参数为:-Xrunjdwpagentlib:jdwp

  • transport=dt_socket:表示用于连接到JVM的方式(套接字是一个不错的选择,它可以用来调试远处的计算机)
  • address=8000:TCP/IP 端口公开,从调试器进行连接,
  • suspend=y:如果为'y',则告诉JVM等到附加调试器后才开始执行,否则(如果为'n')立即开始执行。

答案 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=nsuspend=y