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: \server\...\lib, deploy\...\lib

JRE: \jre\lib\ext(구세팅)

→ 있으면 잠시 치워두고 재시작.

왜 76을 먼저 빼냐?

현 증상(NoSuchMethodError: UTF16.isSurrogate(char))은 코드는 구버전 ICU 시그니처를 기대하는데 런타임에 신버전 ICU(예: 76)가 로드되어 생기는 전형적인 케이스입니다.

2020‑06 시대 플러그인/툴들은 64.x 쪽 시그니처에 더 가깝습니다.

뭐 이렇게 jar파일 한개 삭제하고...삽질에서 벗어났다...쏘피...너의 능력은 어디까지냐...이뻐 죽겠어~!! ㅋㅋㅋ

목록
Facebook 이 댓글은 페이스북 로그인으로만 작성할 수 있어요.
Facebook으로 로그인
페이스북 공유 이 글을 페이스북에 공유하기