YZ ZONE

[혼자 공부하는 자바] ch1-3.1 자바 프로그램 개발 과정 본문

programming language/Java

[혼자 공부하는 자바] ch1-3.1 자바 프로그램 개발 과정

러블리YZ 2023. 1. 18. 12:02
cd ch1폴더위치

자바 프로그램 개발 과정

1. 파일 확장명이 .java인 파일을 생성 후 자바 언어로 코드 작성

2. 작성된 자바 소스 파일을 컴파일러인 javac 명령어로 컴파일

3. 컴파일 성공시 .class인 바이트 코드 파일이 생성됨 (바이트 코드 파일은 완전한 기계어가 아님) 

4.java 명령어JVM이 바이트 코드 파일을 완전한 기계어 번역 후 실행

 

자바 가상 기계 JVM. Java Virtual Machine

자바 가상 기계 JVM은 하드웨어가 아니고 JDK에 포함되어 있는 소프트웨어다. 

바이트 코드 파일을 운영체제에서 실행하기 위해서는 JVM이라는 번역기를 통해 해당 운영체제에서 실행 가능한  기계어로 번역해 실행한다. 즉 운영체제와 상관없이 자바 프로그램 개발이 가능하다. 

 

[1단계] 프로젝트 생성

만약 [Java Project]가 안보이면 [Window]-[Perspective]-[Open Perspective]-[Java]를 선택해 java퍼시펙티브로 변경.

새 프로젝트명과 모듈명 입력
위와 같은 경로에 module-info.java 편집뷰가 있음

module ch1 {
	requires java.se; /* JAVA SE가 제공하는 모든 모듈이 필요함을 의미함 */
}

이 책으로 학습할 동안 모든 프로젝트의  module-info.java 편집뷰에 위와 같은 코드를 작성해야함. 

[2단계] 소스 파일 생성과 작성

ch1의 src 폴더를 선택 후 우클릭 후 [New]-[Package]선택
패키지 이름 설정 후 finish
생성된 패키지 선택 - 우클릭 - [New]-[Class]
클래스 이름 설정 - 위 사진과 같이 체크
생성된 Hello.java 편집뷰에서 다음과 같이 작성

패키지란?

자바는 소스 파일 및 컴파일된 바이트 코드 파일들을 기능별로 쉽게 관리하기 위해 패키지를 사용함. 
패키지는 마치 파일 시스템의 폴더(디렉토리)와 비슷함. 

 

[3단계]바이트 코드 실행

Hello.java 우클릭-[Run AS]-[Java Application]
실행 결과로 "Hello,Java"가 출려됨

명령 라인에서 컴파일하고 실행하기

이클립스 같은 IDE는 개발자들의 편리를 위해 소스파일 저장시 자동으로 컴파일하고 RUN아이콘 클릭시 복잡한 명령어를 입력할 필요 없이 쉽게 실행해준다. 

그러나 명령 프롬포트, 터미널 같은 명령 라인에서 javac와 java 명령어로 소스파일을 직접 컴파일하고 실행 해야 하는 경우도 있다. 그래서 할 줄 알아야겠죠?

1. ch1에 bin 폴더를 삭제

 

2. 명령 프롬포트(터미널)를 실행 후 아래 코드 작성

cd ch1파일 위치

 

3. src 폴더에 있는 소스 파일을 javac명령어로 컴파일해서 바이트 코드 파일을 bin폴더에 생성하기

JDK 8 이전 버전 컴파일 javac -d [바이트 코드 파일 저장 위치] [소스경로/*.java]
JDK 11 이후 버전 컴파일 javac -d [바이트 코드  파일 저장 위치] [ 소스경로/module-info.java 소스경로/*.java]

 

#JDK 8 이전 버전 컴파일 예시
javac -d bin src/sec03/exam01/*.java
tree /f /a

#JDK 11 이후 버전 컴파일 예시
javac -d bin src/module-info.java src/sec03/exam01/*.java
tree /f /a

JDK 11 이후 버전부터는 모듈 기술자에 requires키워드로 의존성 모듈이 기술되어 있어 모듈 기술자도 컴파일 대상에 반드시 포함 시켜야함. 컴파일러는 소스파일을 컴파일하기 위해 모듈 기술자에 기술된 의존성 모듈을 참고함. .

 

4. java명령어로 바이트 코드 파일을 실행

JDK 8 이전 버전 실행 java -cp [바이트 코드 파일 저장 위치] [패키지이름...클래스 이름]
JDK 11 이후 버전 실행 java -cp [바이트 코드 파일 저장 위치] -m 모듈/패키지이름...클래스 이름
#JDK 8 이전 버전 실행 예시
java -cp bin sec03.exam01.Hello

#JDK 11 이후 버전 실행 예시
java -p bin -m chap01/sec03.exam01.Hello