2008-09-26 46 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上附加調試器。它負責處理所有環境問題。