Java

[IDE없이Java실습#3] 클래스 파일을 소스파일과 다른 위치에 생성하기

쟈비쓰 2022. 12. 25. 21:09
728x90

오늘의 목표

목적파일 (.class) 을 다른 디렉토리에 생성하자
 

계획

1. 클래스 파일을 생성할 디렉토리 생성

2. 자바파일 컴파일 시 클래스 파일 생성 경로 설정 명령어 찾아서 생성해주기

 

실행과정

1. mkdir classes 로 디렉토리 생성

mkdir 명령어로 classes라는 클래스 파일 저장용 디렉토리를 생성하였다.

 

생각 없이 정한 이름인데 돌이켜보니 보통 IDE를 활용하여 자바 프로젝트를 생성할 경우 소스 파일은 src 폴더에, 컴파일러가 생성한 클래스 파일은 bin 폴더에 생성되었는데 다른 이름의 디렉토리에 생성이 된 것이 신기했다.

클래스파일은 어디에 생성돼도 상관이 없는 걸까..?

 

2. HelloWorld.java, MainApp.java 작성

해당 디렉토리에 오늘 컴파일할 소스 파일인 HelloWorld.java, MainApp.java 두 개의 자바 파일을 작성하여 저장하였다.

1번 단계에서의 classes 디렉토리도 잘 생성된 것을 확인할 수 있다.

2. javac -d ./classes HelloWorld.java MainApp.java 로 생성 디렉토리 안에 클래스 파일 생성 (javac -help 참고)

오늘도 유용한 javac -help의 도움을 받아 -d 플래그(directory를 의미)를 줘서 클래스 생성 디렉토리를 설정했다.

 

아래와 같이 컴파일을 해주면

classes 폴더에 컴파일러가 클래스 파일을 생성해준 것을 확인할 수 있다.

 


배운 점

자바컴파일러의 타겟 폴더, 컴파일 클래스파일 저장 아웃풋 디렉토리 모두 직접 설정할 수 있다.

 

궁금한 점

소스 파일과 클래스 파일은 특별한 위치가 아니라 개발자가 원하는 아무 경로에 있어도 컴파일러, 인터프리터가 찾는데 왜 그렇게 허용했을까? 
그리고 IDE는 왜 각각 src, bin 디렉토리에 각각 소스파일 클래스파일을 생성하는 것일까?

728x90