一尘不染

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

java

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

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


阅读 389

收藏
2020-03-01

共2个答案

一尘不染

我将本文标记为针对Java 5及更低版本进行设置。

基本上使用以下命令运行它:

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

对于Java 5及更高版本,请使用以下命令运行它:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=1044
2020-03-01
一尘不染

在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的方式(套接字是一个不错的选择,可用于调试远程计算机)
  • address=8000 :暴露了TCP / IP端口,以便通过调试器进行连接,
  • suspend=y :如果为“ y”,则告诉JVM等待直到连接了调试器开始执行,否则(如果为“ n”),立即开始执行。
2020-03-01