Archive/예전 TIL

[트러블슈팅] 윈도우 한글 경로(ClassNotFoundException)로 인한 자바/테스트 에러

khu2172 2025. 7. 8. 23:29

문제 현상

  • 메인 메소드 실행은 정상
  • JUnit 테스트, Gradle 빌드, 외부 명령 실행 등에서 아래와 같은 에러 발생
 
오류: 기본 클래스 worker.org.gradle.process.internal.worker
.GradleWorkerMain을(를) 찾거나 로드할 수 없습니다.
 
원인: java.lang.ClassNotFoundException: worker.org.gradle
.process.internal.worker.GradleWorkerMain
  • 추가로, JAVA_HOME/PATH 에러, 파이프 닫힘 등 부가적 메시지 반복 발생

원인 파악을 위한 시도들

  1. JDK/Gradle 재설치
    • JDK, Gradle 최신 버전으로 재설치
    • 환경변수 JAVA_HOME, Path 재설정
    • 여전히 동일 에러 발생
  2. 인텔리제이 캐시/빌드 캐시 무효화
    • File > Invalidate Caches, .gradle/.idea 폴더 삭제 등 시도
    • 에러 해결 안 됨
  3. 프로젝트 경로/환경변수 점검
    • JDK/Gradle 경로가 정상인지 확인
    • CMD에서 java -version, gradle -v 등 실행
    • 콘솔에서는 정상, 테스트에서는 에러 반복

결국 원인은 ‘한글 계정(경로)’

  • 윈도우 사용자 폴더(C:\Users\한글계정명) 등
    계정명에 한글이 포함된 상태에서 JDK/Gradle 등 개발 도구가 경로를 제대로 인식하지 못함
  • IDE(인텔리제이)에서 메인 메소드는 잘 동작해도
    JUnit/Gradle 등은 OS의 환경변수 및 경로 인코딩에 더 민감해서 문제 발생

최종 해결법: 영문 계정으로 마이그레이션

  1. 영문명 새 계정 생성, 관리자 권한 부여
  2. 필요한 프로젝트/자료만 새 계정으로 복사
  3. 인텔리제이, JDK, Gradle 등 개발 툴 새로 설치
  4. JAVA_HOME, Path 등 환경변수 “영문 경로”로 다시 세팅
  5. 테스트/Gradle 빌드/외부 도구 등 모든 기능 정상 동작 확인

교훈

  • 윈도우 환경에서 개발하려면
    ‘영문 계정/영문 경로’는 선택이 아니라 필수!
  • 여러 환경설정/재설치만으로는
    ‘한글 경로’ 문제를 완전히 해결할 수 없음
  • 트러블슈팅 과정 자체도 큰 경험!
    (이후 환경이 꼬였을 때 빠른 원인 파악 가능)

요약

  • 에러 메시지
    • ClassNotFoundException: worker.org.gradle.process.internal.worker.GradleWorkerMain
  • 해결 위해 시도한 것들
    • JDK/Gradle 재설치, 환경변수 재설정, 캐시 삭제 등
  • 결국 한글 경로(계정) 때문이었음
    • 영문 계정으로 마이그레이션 후 완전 해결!