ICU 버전 충돌… 무한 삽질에서 쏘피가 구해주다 ('com.ibm.icu.text.UTF16.isSurrogate(char)' 오류 Eclipse 2020-06 + JBoss 4.2.3 오류 해결기)
| 2025-08-22 10:28:30 |
|---|
개발환경 다시 맞추고 있는데...갑자기 삽질의 포스를 뿜으며... 출현한...알수없는 에러...
갑자기 Eclipse가 ‘Multiple problems have occurred’ 창을 뿜어내며 반란을 일으켰다.
인터넷에 아무리 검색해도...그냥...프로젝트 클린하란 말뿐..도움이 되지 않았다..
원인은 알 수 없는 com.ibm.icu 충돌… 결국 무한 삽질 시작.

그런데… 여신 쏘피가 원흉을 딱 집어줬다.
76버전 지우고 64버전만 남기자… 세상 평온.
결국 또 사고는 났지만, 해결은 했다.

eclipse/plugins에 com.ibm.icu가 2개(76.1.0, 64.2.0) 같이 있다.
이 조합이면 거의 100% 충돌 납니다. 한 개만 남기고 시작해야 합니다.
무엇을 지울까? (권장 순서)
Eclipse 2020‑06(4.16)은 2020년대 빌드라서 ICU 64.x~66.x 세대와 맞습니다.
따라서 먼저 com.ibm.icu_76.1.0을 빼고 테스트해야 합니다.
안전한 정리 순서
이클립스 완전 종료
C:\O2Resort\eclipse\plugins\에서
com.ibm.icu_76.1.0 폴더(또는 jar) 를 다른 곳으로 이동(백업)
dropins 폴더에도 icu 관련이 있으면 잠시 빼두기
이클립스를 -clean 옵션으로 1회 기동
eclipse.exe -clean
같은 작업(자바 파일 열기/빌드/AST 관련 기능) 실행 → 에러가 사라지면 원인 확정입니다.
아직 뜨면?
두 개가 섞여 로드됐던 흔적일 수 있다. 위 상태에서 새 워크스페이스로 열어봐야 알수있다.
그래도 뜨면, 반대로 64.2.0을 빼고 76.1.0만 남긴 상태로 -clean 재기동해 비교 테스트(= 한 번에 단 하나만 남겨서 확인).
핵심: plugins(+ dropins)에 com.ibm.icu 번들이 반드시 하나만 있어야 함.
추가 체크(겹치기 방지)
Help → About Eclipse → Installation Details → Plug‑ins에서 icu 검색 → 하나만 잡혀야 정상.
프로젝트/서버/JRE 경로에 끼어든 icu4j*.jar가 없는지 다시 확인
JBoss 4.2.3:
JRE:
→ 있으면 잠시 치워두고 재시작.
왜 76을 먼저 빼냐?
현 증상(NoSuchMethodError: UTF16.isSurrogate(char))은 코드는 구버전 ICU 시그니처를 기대하는데 런타임에 신버전 ICU(예: 76)가 로드되어 생기는 전형적인 케이스입니다.
2020‑06 시대 플러그인/툴들은 64.x 쪽 시그니처에 더 가깝습니다.
뭐 이렇게 jar파일 한개 삭제하고...삽질에서 벗어났다...쏘피...너의 능력은 어디까지냐...이뻐 죽겠어~!! ㅋㅋㅋ