자바 원 격 배치 및 디 버 깅 및 원리 상세 설명

이 글 은 주로 자바 가 원 격 배치 와 디 버 깅 및 원리 에 대한 상세 한 설명 을 소개 하 였 으 며,글 에 서 는 예제 코드 를 통 해 매우 상세 하 게 소개 하 였 으 며,여러분 의 학습 이나 업무 에 대해 어느 정도 참고 학습 가 치 를 가지 고 있 으 며,필요 한 친 구 는 참고 하 실 수 있 습 니 다.
원 격 디 버 깅,특히 로 컬 에서 개발 할 때 서버 의 프로그램 을 디 버 깅 해 야 할 때 원 격 디 버 깅 은 매우 유용 하 다.
JAVA 는 디 버 깅 기능 을 지원 합 니 다.자체 적 으로 간단 한 디 버 깅 도구 인 JDB 를 제공 합 니 다.정지점 과 스 레 드 급 디 버 깅 을 지원 하 는 동시에 서로 다른 JVM 은 인터페이스의 프로 토 콜 을 통 해 연락 합 니 다.로 컬 자바 파일 은 원 격 JVM 에서 연락 과 통신 을 구축 합 니 다.이 편 은 Intellij IDEA 원 격 디 버 깅 의 튜 토리 얼 집합 과 원리 해석 으로 그 이 유 를 알 고 있 습 니 다.원 격 배치
1.이 컴퓨터 Intellij IDEA 원 격 디 버 깅 설정

1.Inteliij IDEA 를 열 고 상단 메뉴 표시 줄 에서 Run->Edit Configurations 를 선택 하여 다음 그림 의 실행/디 버 깅 설정 인터페이스 에 들 어 갑 니 다.
2.왼쪽 상단'+'번 호 를 클릭 하고 Remote 를 선택 합 니 다.오른쪽 에 있 는 세 개의 빨 간 상자 의 인 자 를 각각 입력 하 십시오:Name,Host(원 격 디 버 깅 포트 를 지정 하고 싶 습 니 다).
3.화면 오른쪽 아래 단 추 를 누 르 면 됩 니 다.
2.서버 쪽 에서 디 버 깅 모드 를 열 고 JVM 시작 파 라 메 터 를 추가 하여 원 격 디 버 깅 을 지원 합 니 다.
서버 쪽 의 catalina.sh 파일 은 Tomcat 의 설치 디 렉 터 리 에서 로 컬 로 복사 하여 편집 합 니 다.첫 줄 에 인자 설정 을 다음 과 같이 추가 하고 완료 후 붙 여 넣 습 니 다.

텍스트:
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8089"
설정 추가 후 tomcat 를 다시 시작 하면 유효 합 니 다(shutdown.sh/startup.sh).원 격 디 버 깅 을 시작 합 니 다.
3.Intellij IDEA 원 격 호출 시작
마지막 으로 IDEA 를 열 고 프로그램 에 정지점 을 두 고 실행 모드 를 원 격 으로 선택 하고 실행 을 클릭 합 니 다.서버 에서 실행 중인 시스템 프로그램 을 호출 하여 시스템 이 자동 으로 정지점 에 들 어 갑 니 다.
4.왜 원 격 디 버 깅 을 할 수 있 습 니까?뒤의 원 리 는 무엇 입 니까?
먼저,알 아 본 자바 프로그램의 실행 과정-자바 의 파일-컴 파일 생 성 된 클래스 파일(class 파일)-JVM 로드 클래스 파일-JVM 실행 클래스 바이트 파일-JVM 번역 기 는 각 기계 가 인식 하 는 서로 다른 기계 코드 로 번역 합 니 다.
원 격 디 버 깅 원리
자바 프로그램 은 자바 가상 머 신(JVM)에서 실행 되 고 좋 은 크로스 플랫폼 성 을 가 진 것 으로 알려 져 있 습 니 다.자바 프로그램 이 바이트 코드 로 JVM 에서 통일 적 으로 실행 되 고 서로 다른 플랫폼 의 가상 머 신 은 모두 이러한 똑 같은 프로그램 저장 형식 을 통일 적 으로 사용 하기 때 문 입 니 다.모두 클래스 바이트 파일 이기 때문에 로 컬 코드 와 원 격 서버 의 클래스 파일 이 같 으 면 두 JVM 은 디 버 깅 프로 토 콜 을 통 해 통신 합 니 다(예 를 들 어 콘센트 를 통 해 같은 포트 에서 통신 합 니 다).또한 주의해 야 할 때 디 버 깅 된 서버 는 디 버 깅 모드 를 켜 야 합 니 다.서버 의 코드 와 로 컬 코드 는 일치 해 야 합 니 다.단점 이 들 어 갈 수 없 는 문 제 를 일 으 킬 수 있 습 니 다.자바의 디 버 거 구조

1.이 구 조 는 실질 적 으로 JVM 입 니 다.로 컬 자바 의 소스 코드 가 대상 프로그램 과 일치 하도록 확보 하면 로 컬 자바 의 소스 코드 는 콘센트 로 원 격 JVM 에 연결 하여 디 버 깅 을 수행 할 수 있 습 니 다.따라서 이러한 콘센트 연결 모드(아래 설명)에서 로 컬 은 소스 코드 만 있 으 면 되 고 로 컬 자바 응용 프로그램 은 시작 하지 않 아 도 됩 니 다.
전송 방식,기본 값 은 Socket 입 니 다.
소켓:MACOS,Linux 시스템 은 이러한 전송 방식 을 사용 합 니 다.
공유 메모리:WINDOWS 시스템 은 이 전송 방식 을 사용 합 니 다.
디 버 깅 모드:기본적으로 Attach;
Attach:이 모드 에서 디 버 깅 서버(원 격 으로 실행 되 는 기기 디 버 깅)가 포트 를 시작 하여 우리(디 버 깅 클 라 이언 트)가 연결 되 기 를 기다 리 고 있 습 니 다.
Socket:이 모드 에서 우리(디 버 깅 클 라 이언 트)가 포트 를 감청 하 는 것 입 니 다.디 버 깅 서버 가 준비 되면 연결 합 니 다.
설정 속성 설명 보충

텍스트:

CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8089"
2.매개 변수 설명:
  • -Xdebug:JVM 이 디 버 깅 모드 에서 작 동 하 는 것 을 알 립 니 다
  • -Xrunjdwp:JVM 에 게 디 버 깅 환경 을 실행 하 라 고 알 립 니 다.매개 변 수 는 일련의 디 버 깅 옵션 이 있 습 니 다
  • session:디 버 깅 데이터 의 전송 방식 을 지정 하 였 습 니 다.dtsocket 은 SOCKET 모드 를 말 하 며,다른 dtshmem 은 공유 메모리 방식 을 말 하 는데 그 중에서 dtshmem 은 창 플랫폼 에 만 적 용 됩 니 다.server 매개 변 수 는 서버 모드 의 가상 컴퓨터 에 지원 하 는 지 여 부 를 말 합 니 다
  • onthrow:이 유형의 이상 이 발생 하면 JVM 이 중단 되 고 이 매개 변 수 를 선택 합 니 다
  • release:JVM 이 중단 되 었 을 때 실행 가능 한 프로그램 을 가리 키 는 이 매개 변 수 는 선택 할 수 있 습 니 다
  • suspend<:디 버 깅 클 라 이언 트 가 만들어 진 후에 JVM 을 실행 할 지 여부 입 니 다
  • onuncaught(=y 또는 n)는 포획 되 지 않 은 이상 이 발생 한 후 JVM 의 실행 을 중단 할 지 여 부 를 가리킨다

  • 이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기