JVM을 원격으로 디버깅 할 수 있도록 설정하는 Java 명령 행 옵션은 무엇입니까?
JAVA_OPTS
Java 프로그램을 원격으로 디버깅하도록 설정해야한다는 것을 알고 있습니다 .
그들은 무엇이며 무엇을 의미합니까?
내가 가진 이 기사 아래에 자바 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'인 경우) 즉시 실행을 시작하십시오.
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"
커맨드 라인
-Xdebug -Xrunjdwp : transport = dt_socket, 서버 = y, 일시 중지 = n, 주소 = PORT_NUMBER
그래들
gradle bootrun --debug-jvm
메이븐
mvn spring-boot : run -Drun.jvmArguments = "-Xdebug -Xrunjdwp : transport = dt_socket, server = y, suspend = y, address = PORT_NUMBER
Maven을 사용하는 경우 많은 환경 문제가 있습니다. 따라서 maven에서 프로그램을 시작하는 경우 포트 8000에서 디버거 mvnDebug
대신 명령을 실행하고 mvn
모든 환경 문제를 처리하십시오.
'development' 카테고리의 다른 글
PHP cURL이 단일 요청으로 응답 헤더와 본문을 검색 할 수 있습니까? (0) | 2020.03.16 |
---|---|
C #에서 "사용"의 용도는 무엇입니까 (0) | 2020.03.16 |
목록을 표 형식의 데이터로 인쇄 (0) | 2020.03.16 |
목록을 표 형식의 데이터로 인쇄 (0) | 2020.03.16 |
다른 목록의 값을 기준으로 목록을 정렬 하시겠습니까? (0) | 2020.03.15 |