안녕하세요
이번 포스팅의 주제는 콘솔창! 즉 cmd창에서 자바 파일을 컴파일을 해보는 것 입니다.
저처럼 개발 초보는 보통 컴파일을 생각하면 이클립스에서 F11을 이용하는 컴파일만 아실텐데요
이클립스에서는 쉽게 지원해주지만 실제 자바 파일 컴파일의 과정을
그냥 포스팅 내용 정도로만 기억해주시면 도움이 될 것 같습니다.
그러면 지금부터 순서대로 자바 파일 컴파일을 진행해보겠습니다.
- 콘솔창으로 Java 파일 컴파일 과정 알아보기
1. 콘솔창을 실행시켜줍니다. (윈도우 검색 -> cmd)
2. 파일 탐색기를 보시면 기존에 제가 'Hello Java'가 출력되는 자바파일을 작성해두었습니다.
자바 파일이 있는 경로로 cmd 창에서 이동한다.
입력값 : cd 자바파일경로
3. 명령어 javac를 이용하여 컴파일 과정을 진행한다.
입력값 : javac 파일이름.java
자바 파일이 있는 경로로 이동하여 컴파일 하려는 Test.java가 존재한다면 에러 없이 컴파일 되어 기존 존재하지 않은 .class 파일이 생성됩니다.
4. 명령어 java를 이용하여 .class 파일 실행 시키기
Test01.java 파일의 소스입니다.
위 과정을 에러 없이 내려왔다면 컴파일이 성공적으로 끝내져서 class 파일이 생성되어 있을 것입니다.
이 파일이 정상적으로 실행이 되었다면 "Hello Java"가 출력될 것으로 예상이 됩니다.
입력값 : java 파일이름
class 파일이 실행되어 cmd창에 Hello Java가 출력됩니다.
- 자주 발생하는 실수, 오류
cmd 창을 이용하여 자바 파일을 컴파일 하다 보면 대표적으로 두개의 오류를 만나게 됩니다.
제가 cmd 창으로 컴파일을 시도할 때 발생했던 오류와 해결 방법에 대해 설명하겠습니다.
1. 자바 파일의 package가 존재할 시
오류 : 기본 클래스 Test02.java을(를) 찾거나 로드할 수 없습니다
이와 같은 오류를 발견했다면 먼저 자바 파일에 package가 지정되어 있지 않은지 확인해줍니다.
이처럼 Test02.java는 package가 지정되어 있습니다.
이와 같이 package가 지정되어 있는 자바 파일은 파일 경로가 맞지만 기존 명령어를 이용하여 실행시킨다 면 위와 같은 오류가 발생하게 됩니다.
해결 방법 : 자바 파일에 package가 지정되어 있다면 package가 지정된 상위 폴더에서 실행 시켜줍니다.
명령어 : java package명.파일이름
package의 부모 위치에서 실행하며, 클래스 파일의 이름을 패키지명.클래스파일명 으로 지정해줍니다.
2. 인코딩이 맞지 않아 생기는 오류
unmappable character for encoding MS949
위와 같은 오류가 발생했다면 이 오류는 인코딩이 맞지않아 생기는 오류 입니다.
쉽게 발생하는 오류로 해결방법 또한 쉽게 가능합니다.
해결 방법 : 저장되어 있는 java 파일을 메모장으로 실행 합니다.
이후 바로 '다른이름으로 저장'버튼을 클릭 합니다.
인코딩을 cmd에서 해석이 가능한 'ANSI'로 변경해서 저장을 합니다.
그동안 이클립스나 여러 툴을 사용하여 컴파일을 하다보니 컴파일 방법에 무지하게 되어
다시금 정리하며 공부하는 시간을 가져보았습니다.
지난 날을 반성하며 편리한 툴이 아닌 순수 자바 컴파일을 해보며 지금까지
놓치고 있던 부분을 기억해보는 시간이었습니다.
cmd 창을 이용하여 컴파일 해보는 시간을 가져보았으니 다음에는
자바 기초에 대해 다지는 포스팅을 진행해보겠습니다.
'우당탕탕 개발생활 > _Java' 카테고리의 다른 글
[JAVA 기초] 클래스 구성, 멤버 필드, 멤버 메서드, 멤버 변수, 메인메서드, 명령행 매개변수 알아보기 (0) | 2020.07.04 |
---|---|
[JAVA 기초]자바(java) 형변환 방법, 주석문 알아보고 아스키코드, 문자 리터럴 의미 알아보기 (0) | 2020.07.03 |
[JAVA 기초]자바(java) 상수, 변수, 메서드, 예약어, 자료형 알아보기 (0) | 2020.07.02 |
[JAVA 기초]자바(java)의 특징, 식별자, 클래스 알아보기 (0) | 2020.07.01 |
[JAVA 기초]자바(java) JDK 설치방법 및 환경변수 설정방법 알아보기 (0) | 2020.06.29 |