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

时间:2020-03-06 14:46:30  来源:igfitidea点击:

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

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

解决方案

我将本文标记为使用Eclipse for Java 5及更低版本进行设置。

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

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

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

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

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

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

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

-Xrunjdwp或者agentlib:jdwp参数的选项是:

  • transport = dt_socket:表示用于连接JVM的方式(socket是一个不错的选择,可用于调试远程计算机)
  • address = 8000:公开的TCP / IP端口,用于通过调试器进行连接,
  • suspend = y:如果为'y',则告诉JVM等待直到添加了调试器开始执行,否则(如果为'n'),立即开始执行。