본문 바로가기
개발자의 공부방/에디터

[IntelliJ] 인텔리제이 JRebel 을 대체할 DCEVM + HotSwap 설치&사용방법

by 쌈빡한 쥬니준 2019. 8. 19.

이클립스에서는 톰캣 실행 후 코드를 수정 후 브라우저에서 새로고침을 하면 실시간으로 반영되죠

하지만 인텔리제이는 실시간으로 반영되는게 되지 않다 보니 JRebel 를 사용하게 됐는데...

이녀석 너무 비쌉니다 -_-; (예전에는 무료로 사용할 수 있다는 방법이 있었다지만...지금은 없는 듯?)

그래서 DCEVM 이라는 것을 찾아서 적용해 보았습니다.

 

※ 타 블로그 설명과는 다른 과정이 있으며, 정상 실행이 안 될 수도 있습니다.

 

준비물

  • 인텔리제이
  • DCEVM
  • HotSwapAgent 플러그인
  • Windows 10 기준으로 진행합니다.

1. HotSwapAgent 플러그인 설치하기.

인텔리제이 실행 후..

Ctrl + Alt + S 를 누르시면 Settings 창이 뜹니다.

여기서 Plugins 를 선택 후 검색에 "HotSwap" 을 입력합니다.

아래의 스샷처럼 'HotSwapAgent' 를 설치해주세요. (설치 후 인텔리제이 재실행)

 

※ 타 블로그에서는 DCEVM integration 을 설치하라고 하지만 저는 안되더군요.

 

-- HotSwapAgent 플러그인 설치 --

 

2. DCEVM 설치하기.

DCEVM 설치 하려면 본인의 JDK 버전에 맞는 DCEVM.jar 파일을 다운 받으셔야 합니다.

 

1) http://dcevm.github.io/

 

위 홈페이지를 들어가면 아래와 같은 홈페이지가 뜹니다. 

Binaries 에서 Java 8 update 181 을 다운 받으면 됩니다. (JDK 8 기준)

* java11인 경우 Dcevm-11 on Trava OpenJDK 에 있는 링크를 누르셔서 설치하시면 됩니다.

 

-- DCEVM 홈페이지 --

 

2) DCEVM-8u181-installer.jar 실행 후 설치.

다운받은 DCEVM-8u181-installer.jar (줄여서 DCEVM.jar이라고 하겠습니다.) 을 클릭하시면 아래 사진과 같이 나옵니다.

(저는 이미 설치한 상태여서 'Yes' 라고 나옵니다.)

 

-- DCEVM.jar 실행 & 설치 완료된 모습 --

설치한 JDK 경로(Directory)가 자동으로 나올 것이며 나오지 않는다면..

'Add installation directory...' 를 클릭 후 경로를 추가하시면 됩니다.

'Replace by DCEVM' 은 jdk1.8.0_181 안에 jvm.dll 의 백업 파일을 만드는 것입니다.

'install DCEVM as altjvm' 을 누르셔야 저희가 원하는 기능을 사용할 수 있습니다.

 

이제 install DCEVM as altjvm 을 누르시면 됩니다. (백업파일 여부는 본인 선택입니다.)

위 처럼 installed altjvm?에 Yes 라고 나오신다면 된 겁니다.

 

3. 오류 났을 경우.

만약 아래와 같이 나온다면...

-- 에러 떴을 경우 --

 

다운받은 DCEVM.jar 파일을 본인이 설치한 JDK 경로의 lib폴더로 복사합니다.

C:\Program Files\Java\jdk1.8.0_181\lib ← 저는 여기가 기본 경로입니다.

-- JDK 경로 --

 

cmd (명령프롬프트)를 관리자 권한으로 실행합니다.

아래의 스샷처럼 cd.. 을 하면 그 전의 경로를 잡아줍니다.

저희는 jdk\lib 쪽으로 경로를 잡아서 jar를 설치할 것 입니다.

cmd 창에 cd C:\Program Files\Java\jdk1.8.0_181\lib 를 입력합니다. 아래와 같이 cmd 경로가 잡힙니다.

 

이제 java -jar DCEVM-8u181-installer.jar 을 입력합니다.

(만약에 DCEVM-8u181-installer.jar 파일 이름을 a.jar 로 바꾸셨다면 a.jar 입력하시면 됩니다.)

 

jar파일을 클릭했듯이 아래와 같이 jar 인스톨창이 뜨게 됩니다.

이제 Install DCEVM as altjvm 을 누르시면 제대로 설치가 될 것 입니다.

 

-- DCEVM.jar 실행 & 설치 완료된 모습 --

 

4. 인텔리제이 설정 해주기.

settings → Build, Execution, Deployment → Debugger → HotSwap 을 누릅니다.

아래와 같이 설정을 합니다. 

 

-- HotSwap 설정 --

 

마찬가지로 아래와 같이 설정.

--  hotSwapAgent 설정 --

 

인텔리제이 상단에 Run → Edit Configurations 클릭.

On 'Update' action: Update classes and resources

On frame deactivation: Update classes and resources

와 같이 설정.

-- 톰캣 서버 설정 --

 

이제 톰캣으로 실행 후 jsp 파일에서 코드를 변경 후 제대로 변경이 되는지 확인해봅니다.

-- 코드를 변경 전 모습 --
-- 코드를 변경 후 새로고침 한 모습. --

 

확실히 잘 되는 것 같습니다!

 

안되시면 댓글 달아주시면 아는 선에 한하여 알려드리겠습니다!

 

 

댓글5

  • Chick Developer 2020.02.07 10:59 신고

    .java 파일 수정은 안먹히는건가요?
    답글

    • https://github.com/HotswapProjects/HotswapAgent
      여기서 보시면 아시겠지만 핫스왑+DCEVM 이라는게 서버 재구동 없이 자바단을 리로딩해주는거라서요
      만약에 안되시면 새로운 스프링 프로젝트 만드셔서 테스트 해보시는 것도 좋을 것 같네요!

    • Chick Developer 2020.02.07 13:34 신고

      파일 수정 및 저장 한뒤
      톰캣 Edit configuratons에서
      On 'Update' action을 Redeploy으로 바꾸니까 잘되네요!! 감사합니다@@

    • 오 잘구동되신다니 다행입니다!
      저도 안되면 옵션 바꿔서 해봐야겠네요!!

  • 항상행복 2020.02.13 10:04

    내용 잘 보았습니다. 아직 적용은 안했는데 궁금한게 있어서요.
    intellij 사용중인데 mybatis 라던지 env 파일등 xml 수정과 새로운 class 추가, 새로운 method 추가할때도 위 방법으로 가능한지 궁금합니다.
    답글