# 문제
Eclipse 에서 Java파일 작성한 후에 CMD창에서 해당 java파일의 컴파일된 class파일 실행시 한글이 깨져서 출력된다.
# 배경설명
Eclipse를 처음 설치하면 한글 깨짐을 방지하기 위해 하기와 같은 Encoding 설정을 해줘야 한다.
그리고 필자는 그 설정을 다 마친 상태였다.
"CMD 한글 깨짐" 등의 키워드로 구글링을 해보면 code page의 기본값이 원래 949인데
이것을 UTF-8 인코딩에 해당하는 65001로 바꿔야 한다는 등의 방법이 나오는데
필자는 그렇게 해결이 되지 않았다...
하기 내용은 해결되기 전까지의 세팅 및 상황이다.
1. Window > Preferences 에서 "encoding" 검색 후 나오는 탭에서 하기 표시된 부분들의 encoding을 UTF-8로 설정
1_1) Workspace 탭 인코딩 설정
1_2) CSS Files 탭 인코딩 설정
1_3) HTML Files 탭 인코딩 설정
1_4) JSP Files 탭 인코딩 설정
1_5) XML Files 탭 인코딩 설정
2. Window > Preferences > Spelling 탭에서 Encoding을 UTF-8로 설정
이제 해당 CMD(명령프롬프트)창을 열고 해당 java파일을 컴파일해서 class 파일을 생성한 후 class파일을 실행하려고 했는데 컴파일만 해도 이미 에러문구가 나온다.
하기와 같이 한글주석부분의 출력이 깨진것이 보인다...
CMD 한글깨짐 캡쳐 1의 1번 line :
cd는 CMD의 "Change Directory" 명령어이다.
C:\Users\user의 현재 경로에서 cd "새로운 경로" 로 현재 디렉토리를 변경한다
CMD 한글깨짐 캡쳐 1의 2번 line :
javac "java파일명.java" 는 해당 자바파일을 컴파일 하여 직접 실행가능한 class 파일을 생성한다.
이후 내용은 한글주석부분이 깨졌기에 CMD의 기본 code page인 949와 파일의 인코딩 방식이 다르다는것을 나타낸다.
위 캡쳐처럼 chcp를 입력하면 기본 활성 코드 페이지를 확인할 수 있다.
# 해결방법
그래서 필자는 어떻게 해결을 했냐하면
Eclipse의 해당 프로젝트 우클릭 > Properties > Resource 에서 Text file encoding을 "MS949"로 설정하였다.
# 결과
이렇게 java파일을 컴파일 하여 class파일을 만든 뒤 해당 클래스 파일을 실행시 java소스 내의 한글이 깨지지 않고 출력되는 것을 볼 수 있다.
javac 명령어로 컴파일 하는 디렉토리와 java 명령어로 컴파일된 파일을 실행하는 디렉토리가 왜 다른지
덧붙여 말하자면 eclipse내에서 package내에 존재하는 java파일을 컴파일 할 때는 해당 디렉토리에 직접 접근 가능하다.
하지만, 컴파일된 해당 파일을 실행하려면 package 밖으로 디렉토리를 이동시켜야만 java 명령어가 적용된다고 한다.
자 이로써 문제가 해결되었다 :]
# References
'개발 오류' 카테고리의 다른 글
Error - Can't create a java class file by intelliJ (0) | 2023.03.31 |
---|---|
[Spring in Action] H2 database 테이블 생성 안되는 오류 (2) | 2021.11.09 |
[Spring in Action] h2 database 접근 오류 (0) | 2021.11.07 |
Web server failed to start. Port 8080 was already in use. (0) | 2021.08.20 |
[STS4] import javax.validation 오류 (0) | 2021.08.20 |