티스토리 뷰
[JAVA] java cmd compile error : unmappable character (0xEC) for encoding x-windows-949 원인 파악, 설명과 문제해결
py0922 2022. 9. 12. 00:21JAVA로 '안녕하세요'를 출력할 목적으로 HiKrea라는 class를 만들었는데요.
메모장으로 JAVA코드를 입력하였고, CMD로 컴파일(compile)과 결과를 실행할 목적입니다.
일단 이미 JDK를 설치한 상황이고, CMD로 compile를 시도하였을 때 오류가 발생했습니다.
오류가 발생한 class의 이름은 HiKorea이고
해당 컴파일 오류는 아래와 같으며 이 오류의 원인과 해결방법을 적어보도록 하겠습니다.
1. 오류 원인 파악
일단 오류 발생했다는 설명을 읽어보았고 저는 제가 컴파일 하고자 한 소스파일인 HiKorea파일에 적은 문자가
x-windows-949로 인코딩할 수 없다는 것으로 이해했습니다.
* windows-949 : 한국어판 Microsoft Windows의 기본 코드 페이지로, 한글 인코딩의 한 종류이며 EUC-KR의 확장형이다.
'통합 완성형'이나 '확장 완성형'이라고도 한다. 마이크로소프트가 개발했기 때문에, MS949, windows-949 등으로 불린다.
2. 컴파일 오류가 발생한 파일 소스코드 확인
저의 소스 코드는 아래처럼 '안녕하세요'를 출력하는 것이 목적인데요.
'안녕하세요'가 한국어이기 때문에 x-windows-949로 인코딩할 수 없는 것 같습니다.
3. 문제해결
x-windows-949로는 한국어를 인코딩할 수 없기 때문에, 한국어도 가능한 UTF8로 인코딩해주기로 했습니다.
x-windows-949로 인코딩하는 것은 디폴트값이기 때문에, UTF8은 컴파일하는 과정 뒤에
' -encoding UTF8'을 추가로 써주면 됩니다.
javac 파일이름.java -encoding UTF8
<실행 결과>
저처럼 아래와 같이 아무것도 뜨지 않으면 성공입니다.
* dir 명령어를 통해 컴파일된 파일(확장자 : .class)이 생겼는지 확인할 수 있습니다.
4. + 추가) java 결과 실행
추가적으로 글을 남깁니다. 결과를 실행하기 위해 'java 파일이름'을 입력해줍니다.
이때, 실행하는 명령에서는 파일의 확장자명(.class)은 생략해야합니다.
java 파일명
<실행 결과>
5. 오류의 원인 정확히 하기.
오류의 해결만으로도 좋지만, 다음에 비슷한 오류가 발생했을 때 빠르게 해결할 수 있기 위해
오류의 원인을 정확히 아는 것도 좋다고 생각합니다.
저는 초반에 오류의 원인을 x-windows-949가 한국어를 인코딩하지 못한다는 것으로 생각하였고,
오류의 원인을 더 정확히 확인하기 위해 영어로 이루어진 소스파일을 준비했습니다.
Hi를 출력할 목적이고, 파일명은 Hi.java입니다.
소스코드는 아래와 같습니다.
<컴파일 시도 & 결과>
컴파일 결과, 바로 성공했고
출력하고자 한 결과도 잘 나옵니다.
오류의 원인은 windows의 cmd의 encoding default value language인 x-windows-949이
한국어를 매핑하지 못한다는 것이네요.
'JAVA & Spring' 카테고리의 다른 글
- Total
- Today
- Yesterday
- 터틀그래픽예제
- 사람수세기
- 터틀그래픽 명령어
- 사람검출
- randrange
- randint
- SPRING오류해결
- JAVA오류해결
- UnsupportedClassVersionError
- YOLO
- 터틀그래픽
- 파이썬
- Kkma
- gradleload오류
- Turtle Graphic
- streamlistener
- 다인승탑승
- 10828번
- 문제풀이
- 백준
- database연결
- python공부
- 오븐시계
- springboot
- konlpy
- yolov8
- tweepy
- 에러발생
- baekjoon
- 다인승
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |