이클립스에서는 톰캣 실행 후 코드를 수정 후 브라우저에서 새로고침을 하면 실시간으로 반영되죠
하지만 인텔리제이는 실시간으로 반영되는게 되지 않다 보니 JRebel 를 사용하게 됐는데...
이녀석 너무 비쌉니다 -_-; (예전에는 무료로 사용할 수 있다는 방법이 있었다지만...지금은 없는 듯?)
그래서 DCEVM 이라는 것을 찾아서 적용해 보았습니다.
※ 타 블로그 설명과는 다른 과정이 있으며, 정상 실행이 안 될 수도 있습니다.
준비물
- 인텔리제이
- DCEVM
- HotSwapAgent 플러그인
- Windows 10 기준으로 진행합니다.
1. HotSwapAgent 플러그인 설치하기.
인텔리제이 실행 후..
Ctrl + Alt + S 를 누르시면 Settings 창이 뜹니다.
여기서 Plugins 를 선택 후 검색에 "HotSwap" 을 입력합니다.
아래의 스샷처럼 'HotSwapAgent' 를 설치해주세요. (설치 후 인텔리제이 재실행)
※ 타 블로그에서는 DCEVM integration 을 설치하라고 하지만 저는 안되더군요.
2. DCEVM 설치하기.
DCEVM 설치 하려면 본인의 JDK 버전에 맞는 DCEVM.jar 파일을 다운 받으셔야 합니다.
1) http://dcevm.github.io/
위 홈페이지를 들어가면 아래와 같은 홈페이지가 뜹니다.
Binaries 에서 Java 8 update 181 을 다운 받으면 됩니다. (JDK 8 기준)
* java11인 경우 Dcevm-11 on Trava OpenJDK 에 있는 링크를 누르셔서 설치하시면 됩니다.
2) DCEVM-8u181-installer.jar 실행 후 설치.
다운받은 DCEVM-8u181-installer.jar (줄여서 DCEVM.jar이라고 하겠습니다.) 을 클릭하시면 아래 사진과 같이 나옵니다.
(저는 이미 설치한 상태여서 'Yes' 라고 나옵니다.)
설치한 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 ← 저는 여기가 기본 경로입니다.
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 을 누르시면 제대로 설치가 될 것 입니다.
4. 인텔리제이 설정 해주기.
settings → Build, Execution, Deployment → Debugger → HotSwap 을 누릅니다.
아래와 같이 설정을 합니다.
마찬가지로 아래와 같이 설정.
인텔리제이 상단에 Run → Edit Configurations 클릭.
On 'Update' action: Update classes and resources
On frame deactivation: Update classes and resources
와 같이 설정.
이제 톰캣으로 실행 후 jsp 파일에서 코드를 변경 후 제대로 변경이 되는지 확인해봅니다.
확실히 잘 되는 것 같습니다!
안되시면 댓글 달아주시면 아는 선에 한하여 알려드리겠습니다!