什么是Java命令行选项设置为允许远程debuggingJVM?
我知道有一些JAVA_OPTS设置为远程debuggingJava程序。
他们是什么,他们是什么意思?
我将这篇文章的书签设置为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
single选项:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044
-Xrunjdwp
或agentlib:jdwp
参数上的选项是:
-
transport=dt_socket
:表示用于连接到JVM的方式(套接字是个不错的select,它可以用来debugging远端的计算机) -
address=8000
:TCP / IP端口暴露,从debugging器连接, -
suspend=y
:如果'y',告诉JVM等待直到debugging器被连接开始执行,否则(如果'n'),立即开始执行。
对于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
如果您使用的是Maven,那么存在很多环境问题。 所以,如果你从maven启动你的程序,只需运行mvnDebug
命令来代替mvn
并在端口8000上附加一个debugging器。它负责处理所有的环境问题。