답변:
내가 가진 이 기사 아래에 자바 5에 대한이 최대 설정에 북마크를.
기본적으로 다음을 실행하십시오 .
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
를 들어 위의 자바 5와 그것을 실행 :
-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에 연결하는 데 사용되는 방법을 의미합니다 (소켓을 선택하는 것이 좋습니다. 원격 컴퓨터를 디버깅하는 데 사용할 수 있음).address=8000
: TCP / IP 포트가 노출되어 디버거에서 연결 suspend=y
: 'y'인 경우 실행을 시작하기 위해 디버거가 연결될 때까지 기다리도록 JVM에 지시하고 그렇지 않으면 ( 'n'인 경우) 즉시 실행을 시작하십시오.Xrunjdwp
되지 않는 (또는 제거?) 왜 우리가 선택할 것 agentlib:jdwp
위에?
-Xdebug -Xrunjdwp
Maven 프로젝트를 디버깅 할 때 사용하며 JIT처럼 실행됩니다.
Java 9.0부터 JDWP는 기본적으로 로컬 연결 만 지원합니다. http://www.oracle.com/technetwork/java/javase/9-notes-3745703.html#JDK-8041435
원격 디버깅을 위해서는 *:
in 주소로 프로그램을 실행해야합니다 .
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000
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
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8001,suspend=y -jar target/cxf-boot-simple-0.0.1-SNAPSHOT.jar
address
디버그 할 수있는 포트를 지정합니다
** Maven을 사용한 디버그 스프링 부트 앱 :
mvn spring-boot:run -Drun.jvmArguments=**"-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8001"
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=PORT_NUMBER
여기서는 dt_socket 전송이 구성되고 VM이 서버 디버깅 모드에서 실행될 때 기본적으로 활성화되는 소켓 연결 커넥터를 사용합니다.
자세한 내용은 https://stackify.com/java-remote-debugging/을 참조하십시오.
*:1044
는 어떤 컴퓨터에서든 원격 디버깅을 가능하게하는 것처럼 주소를 구성 할 수 있다는 것입니다.