컴파일할 프린트문 ( 자바 11.0.14 버전 )
public class Hello{
public static void main(String[] args){
System.out.println("이름: 이은지, 나이: 32, 이메일: eunji6986@naver.com ");
}
}
오류
C:\Users\이은지\Desktop>javac Hello.java
error: file not found: Hello.java
Usage: javac <options> <source files>
use --help for a list of possible options
Exception in thread "main" java.nio.file.InvalidPathException
C:\Users\이은지\Desktop\vcsWorkSpace\TestFile.java:4: error: unmappable character (0xEC) for encoding x-windows-949 System.out.println("?씠由?: ?씠??吏?, ?굹?씠: 32, ?씠硫붿씪: eunji6986@naver.com ");
원인
내 원인은 메모장 파일이 txt파일로 저장되어 있어서였다
그런데 cmd에서는 에러가 각양각색이어도 파일을 찾지 못한다고 나타낸다고 해서,
다른 사람들을 위해 폭풍검색으로 시도했던 모든것들을 사소한것까지 다 적어 보았다
실패한 시도들
(파란글씨부터 시도하길 권장)
- 파일명 뒤에 .java로 확장자명이 입력되어 있어야 함
- 메모장이라면 저장시 파일형식이 txt로 되어있다면 모든파일로 선택해준 후 저장(아래 자세한 설명)
- CMD에 입력할때도 파일명.java 로 입력해줘야 함
- 난 자바버전 11.0.14였음 (버전은 중요치 않은듯)
- 환경변수 설정 정상이어야 함 (javac -version / java -version 으로 정상설정여부 확인 가능)
- " " 큰따옴표 사이에 모든 경로를 입력 (파일명.java까지 모두 입력)
- 코드안에 한글이 들어있으면 -encoding utf-8 붙여서 인코딩 (파일명 앞에 붙인것도 봤고, 뒤에 붙인것도 봤다)
- cmd 에 cd입력 후 컴파일 할 파일이 있는 곳으로 경로 입력 후 컴파일 실행
- chcp 65001 입력해 Active code page:65001 셋팅 후 입력
( 경로에 한글이름이 깨지는 현상 발생했으나 에러문구는 여전히 file not found임) - 관리자모드로 cmd실행해서 해보기
- 경로에 한글 이름을 없애고 싶으면 C드라이브에 test용 폴더를 만들어서 진행
- 파일명과 Class명 일치하는지 확인
해결방법
메모장을 저장할 때, 파일형식을 [모든파일] 로 지정해야 한다
그렇지 않으면 TestFile.java 라고 저장해봤자 파일형식이 txt로 되어있음
이렇게 Java 원본파일로 저장되어야 성공
그러면 cmd에는 (cd 로 경로 맞춰준 후)
javac TestFile.java
만 해주면 인코딩 완료
클래스 파일이 생성된것을 볼 수 있다.
이어서, CMD에서 코드를 실행하려면 java TestFile 입력
결과
잘 나왔다.
도움을 얻은 곳
[CMD기초] cd명령어 사용방법
CMD의 cd명령어의 사용방법을 알아보겠습니다. CD cd는 cmd에서 디렉터리를 이동하는데 쓰입니다. 이때 디렉터리란 아래와 같이 cmd에서 기본적으로 출력되는 부분입니다. C:\Users\user> cmd에cd /?를 입
gupu.tistory.com
https://a-one-take-vibe.tistory.com/19
[자바] CMD 에서 컴파일이 안될 때
욕나올 정도로 뒤진 끝에 찾아냈다... 우선 중요한 점은, 이클립스에서 되는데 CMD에서 안 될 때의 원인은 한 가지가 아니다. CMD에서 같은 error메세지를 내보내도 고치는 방법은 다를 수가 있다.
a-one-take-vibe.tistory.com
자바 컴파일시 인코딩 문제
자바 컴파일시 인코딩(encoding) 에러 문제가 발생하는 코드 class Hello { public static void main(String[] args) { System.out.println("Hello, world."); // 화면에 글자를 출력한다. } } 컴파일 오류 컴파일..
thelibraryofbabel.tistory.com
'언어.프레임워크 등등 DB나 도커같은거 말고' 카테고리의 다른 글
[Spring] mapper작성방법 (0) | 2022.03.22 |
---|---|
[김성박의 즐거운 프로그래밍] Main Method , JVM , LTS (0) | 2022.03.20 |
[김성박의 즐거운 프로그래밍] 변수가 값을 가질 때 VS 값을 참조할 때 (0) | 2022.03.20 |
[intelliJ] intelli J 한국어로 사용하기 (0) | 2022.03.20 |
[스프링오류]Unsatisfied dependency expressed through field (0) | 2022.03.19 |