자바의 정석 ch1) 8번, 9번 : 첫번째 자바프로그램 작성+ 자바 프로그램 실행 과정

c 드라이브 에서 jdk1.8 폴더 찾기
jdk1.8 폴더 내에 work 이름으로 새폴더 만들고

work 폴더 안에서 텍스트 문서 새로 만들기해서 Hello.java 파일 만들기
여기서 Hello 대소문자 지켜야 함

윈도우키 + r 키 눌러서
실행도구 에서 cmd 쳐서
컴파일 시도 ! (사람 언어를 기계어로 번역)

cd 는 change directory로 그 폴더로 들어가겠다는 것
자바의 정석 기초편 챕터1-89 첫번째 자바 프로그램 작성 강의를 따라서

path까지 했는데도 계속,,, 여전히,,, 오류

컴파일 오류가 난다 ㅠ

시스템가서 path 등록까지 했는데, 컴파일 오류가 계속나서

Hello.java 파일 메모장 내용까지 지우고 다시 하나하나 꼼꼼히 했는데도 개선이 안됨

검색하여 문제의 원인 분석 결과는 유니코드(utf-8) 로 작성된 코드를
자바 컴파일에서 ms949방식으로 읽으려고 한게 문제

교재의 간단한 첫 예문부터 오류가 발생해서 당황하긴 했는데, 오류 메세지에 나와있는대로 문자 인코딩의 문제로 컴파일을 거부하고 있는 모습이다. 오류가 난 지점을 ^ 문자로 표시하는데 그 부분의 문자열이 인코딩 문제로 깨져보이는것을 알 수 있다.

컴퓨터에서 한글 문자는 역사적인 이유로 각각의 문자를 비트열로 부호화하는 방식(인코딩)이 몇가지가 되는데, 대표적으로 많이 쓰이는것들이 utf-8, euc-kr, cp949, ms949 정도 있다.호환성을 위해 어느곳이나 유니코드(utf-8 등)를 사용하는것이 좋다라고 생각해서 utf-8 인코딩으로 코드를 작성하였다.

위 문제는 utf-8로 인코딩된 코드를 자바 컴파일에서 한글 윈도우의 기본 인코딩을 따라서 ms949 방식으로 읽으려고 시도했지만 실패하여 발생한것이다. utf-8과 ms949와 같은 다른 한글 인코딩은 1바이트로 표시되는 영문자를 포함한 ascii 문자에서만 서로 호환성을 가질 뿐이라서 영문자들은 잘 표시되지만 한글은 알수 없는 엉뚱한 문자로 해석될 뿐이다.
출처: (https://thelibraryofbabel.tistory.com/entry/)[자바-컴파일시-인코딩-문제 [바벨의 도서관]]

해결 방법은 그냥 한글을 지우는 것 ㅋㅋㅋㅋㅋㅋㅋ
자바의 정석 카페(https://cafe.naver.com/javachobostudy/166503)에서
나와 같은 에러가 나는 분이 계셨는데, 궁성쌤이 그냥 한글 지우라고 답변해주셔서
그냥 시원하게 삭- 제-!

지워도 되는 이유는
// 화면에 글자를 출력한다
이 부분이 주석부분으로 그냥 Hello world가 출력될 것이라고 설명해놓은 부분이기 때문이다.
(멋쟁이 사자처럼 활동하면서 개발 환경에서 작업해봐서 다행이다...
왜 그냥 지우라는거지? 라는 생각을 하다가 혼자 가만히 생각해보니 // 블라블라는 주석이였던게 기억남)

그렇게 문제해결 -!

이걸로 3~40분을 잡아 먹었는데 ;;
역시 빠른 검색 능력으로 쑥쑥 넘어가려고 해봐야겠다...
내가 오타를 냈나? 이게 문젠가? 하면서 혼자 파고들면 학습이 배로 걸리는 것 같음 !

검색해보면 이게 문제여서 이렇게 쓰인걸 여기다가 써 넣어야함
이라고 까진 안알려줌
밥상을 차려놨으니, 내가 떠먹어야되는데
아직은 떠먹는 능력은 부족한듯 ㅎ


java 개념들

  1. javac.exe
    자바의 컴파일러 : 사람이 작성한 문장을 기계어로 번역
    (컴퓨터는 사람의 언어를 모르기 때문에 기계어로 번역 필요)
    컴파일을 하면JVM이 이해할 수 있는 클래스 파일(*.class)이 생성된다
    사람언어로 작성된 소스파일 (*.java)을 클래스 파일 (*.class)로 변환되는 것

  1. java.exe
    자바 인터프리터 : 자바 프로그램인 클래스 파일을 읽어서 실행 시킴

  1. 클래스
    자바 프로그램의 단위로 자바 프로그램은 클래스들로 구성되어 있다.
    calss 작성법
    ```
    calss 클래스이름 {
    } 
    ```
    ![](https://media.vlpt.us/images/ga_0/post/6c85c4c8-a0d9-4a9f-8c90-c2c301f0017c/image.png)
  2. main 매서드
    자바 프로그램의 시작점으로
    자바 프로그램을 시작하면 지정된 클래스 파일에서 메인 메서드를 찾아서
    첫 문장부터 순서대로 실행함
    순서가 모두 끝나면 실행 종료
    서로 관련된 여러 문장을 하나로 묶어둔 것으로 다른 프로그래밍 언어의 함수와 같은 역할함

좋은 웹페이지 즐겨찾기