Java

Java - RCP Application 디버깅 모드 확인방법

Pearl_mini 2023. 10. 11. 10:30
728x90

Java 소스단에서 디버깅모드일 때만 버튼이 보이게끔해서 테스트 화면을 작성하고자 할 때

디버깅인지 아닌지 판단하는 방법이 있다.

// 디버깅 여부 확인
	public static boolean isDebuggerAttached() {
        RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
        for (String arg : runtimeMXBean.getInputArguments()) {
            if (arg.startsWith("-agentlib:jdwp")) {
                return true;
            }
        }
        return false;
    }

 

위의 함수로 현재 디버깅모드인지를 boolean타입으로 받아올 수 있다.

 

사용하려는 소스에서 생성자를 통해 디버깅 여부를 확인한 후

boolean isDebugingNow = isDebuggerAttached(); // 디버깅 여부 체크

혹은 this.isDebugingNow로 설정해놓는 것이 편리하다.

this.isDebugingNow = isDebuggerAttached(); // 디버깅 여부 체크

 

 

그다음 테스트 화면을 넣고자 하는 곳에 

이 디버깅여부를 체크한 후 추가하도록 코드를 작성하면 된다.

 

if (this.isDebugingNow) {
			// 디버깅 모드인 경우 
			Display.getDefault().asyncExec(new Runnable() {
				@Override
				public void run() {
					ViewCheckSheetDlg dlg = new ViewCheckSheetDlg(PlatformHelper.getCurrentShell(), cnId);
					dlg.setStartPosition(StartPosition.CenterParent);
					dlg.open();
				}
			});
		} else {
			// 디버깅 모드가 아닌 경우
			ViewCheckSheetDialog viewCheckSheetDialog = new ViewCheckSheetDialog(frame, cnId);
			viewCheckSheetDialog.open();
		}

 

 

위의 코드로 나는 디버깅모드인 경우 / 아닌 경우 로 구분해서 다른 Dialog가 열릴 수 있도록 해놓았다.

 

 

728x90