profile image

L o a d i n g . . .

 

workspace 지정해주고

 

자바 프로젝트 생성!

Java11버전이다

 


자바 8버전과 달라진점

자바 프로젝트를 생성하고 finish를 누르면 module-info창이 뜬다.

 

JDK11이후 버전에서 이클립스가 생성하는 프로젝트는 모듈로 만들어지기 때문에 모듈 기술자(Module Descriptor)라고 부르는 module-info.java가 필요하다. Module name에는 기본셋팅으로 프로젝트 이름이 들어가있다. (꼭 프로젝트명으로 할 필요는 없음)

명령 프롬프트 같은 커멘더라인에서 프로젝트를 실행할 때 모듈명이 필요하므로 이름을 모른다면 module-info.java 내용을 보고 확인하면 된다.

 

 

 

 

 

Create 하고나면 module-info 편집 뷰가 자동으로 실행되어 module chap01이라는 내용이 보이게된다! (신기)

 

 

이런식으로 작성

JDK 이전버전에서는 표준 API 전체가 제공되었지만 JDK11 이후버전부터 JDK가 제공하는 표준 API를 모듈별로 쪼개어 제공한다. 기본적으로는 java.base 모듈을 사용가능하며, 다른 모듈에 있는 API가 필요하다면 위처럼 반드시 모듈 기술자에 의존성 모듈로 등록해야한다. 

 

 

 

자 이제, 자바 설치 국룰 Hello World를 찍어볼 차례

저기 중간에 public static void main(String[] args)를 체크하면 자동으로 main()메소드를 추가해주는데, 나는 저거 없이 하는게 더 익숙해서 그냥 Finish후 main + ctrl + space 를 주로 누르는 편이다.

 

 

package sec03.exam01;

public class Hello {
	public static void main(String[] args) {
		System.out.println("Hello, World");
	}
}

 

안녕 자바세상! 앞으로 잘부탁해!

 

 

 

 


바이트코드실행하기

 

위 출력결과처럼 이클립스는 소스파일을 자동으로 컴파일 하고 run (ctrl+11)로 자바 프로그램을 실행해준다.

하지만 이클립스 개발 환경이 아닌 명령프롬프트(cmd)또는 터미널 같은 CLI(Command Line Interface)에서 javac와 java 명령어로 소스 파일을 직접 컴파일하고 실행해야 하는 경우도 있다.

 

일단 확인을 위해 bin 폴더안에 있는 내용 모두 삭제

 

 

 

 

 

명령프롬프트 (윈도우+R) 을 켜고 cmd 입력 후 프로젝트 위치로 이동한다.

 

 

JDK11 이후버전 javac 명령어

-javac -d bin src/module-info.java src/sec03/exam01/*.java

tree /f /a

 

 

 

java8 이전버전 javac명령어

		[바이트코드파일저장위치]/[소스경로/*.java]
java -d bin src/sec03/exam01/*.java

 

 

 

 

실제로도 모듈과 바이트코드 파일이 생성된 걸 확인할 수 있다.

 

 

 

 

Java 명령어로 바이트 코드파일 실행하기

모듈 기술자를 읽기위해 바이트코드파일 실행 명령 또한 JDK11버전은 다르다 

(자바8 버전 : java -cp [바이트코드파일저장위치][패키지...클래스])

 

javac -p [바이트코드파일저장위치] -m 모듈/패키지이름...클래스이름
javac -p bin -m chap01/sec03.exam01.Hello

 

 

-m 뒤의 chap01이 모듈명인데 모듈 기술자의 모듈명과 동일 할 경우 JVM은 모듈기술자의 내용을 읽고 바이트코드파일(/sec03.exam01.Hello)실행 시 의존성모듈을 참고하게 된다.

 

 

 

 

 

참고 :

- 혼자공부하는 자바, 한빛미디어

 

 

 

 

반응형
복사했습니다!