2008-09-26 63 views

回答

198

我已将this article设置为使用Eclipse for Java 5及更低版本进行设置。

基本上run it with

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

对于Eclipse与Java 5 and above,与运行:

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

的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')立即开始执行。
+6

你是完全正确的。我试着用** - Xdebug的**和** - ** Xrunjdwp但它没”工作。当我尝试使用** - Xrunjdwp **或** agentlib:jdwp **它正在工作。(在Java 7上) – RoboAlex 2012-06-01 06:02:12

4

对于Java 1.5或更大:

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName> 

对于Java 1.4:

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName> 

用于Java 1.3:

java -Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName> 

下面是一个简单的程序输出:

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044 HelloWhirled 
Listening for transport dt_socket at address: 1044 
Hello whirled 
1

如果您使用Maven,那么存在很多环境问题。因此,如果您从maven启动程序,只需运行mvnDebug命令代替mvn,并在端口8000上附加调试器。它负责处理所有环境问题。