자바 컴파일러 javac 사용하는 방법 및 주요 옵션

자바 컴파일러인 javac는 주로 명령 프롬프트나 터미널을 통해 실행됩니다. javac를 사용할 때는 컴파일할 소스코드 파일의 경로를 명령어 뒤에 입력하면 됩니다. 주요 옵션 중에는 -d를 사용하여 컴파일된 바이트코드 파일을 저장할 디렉토리를 지정하거나, -cp를 사용하여 컴파일에 필요한 클래스패스를 지정하는 등의 기능이 있습니다. 아래 글에서 자세하게 알아봅시다.

javac 컴파일러 사용하기

1. 자바 컴파일러란?

자바 컴파일러(javac)는 자바 소스코드를 바이트코드로 변환하는 도구입니다. 이 바이트코드는 JVM(Java Virtual Machine)에서 실행될 수 있는 형식이며, 자바 프로그램을 실행하기 위해 필요합니다.

2. javac 명령어 사용하기

javac를 사용하기 위해서는 명령 프롬프트나 터미널을 열고 해당 명령어를 입력해야 합니다. 다음은 javac를 사용하는 방법입니다.

javac [옵션] [소스코드 파일 경로]

3. javac 주요 옵션

javac는 다양한 옵션을 제공하여 컴파일 과정을 제어할 수 있습니다. 주요 옵션 몇 가지를 살펴보겠습니다.

-d 디렉토리

-d 옵션은 컴파일된 바이트코드 파일을 저장할 디렉토리를 지정하는 역할을 합니다. 이 옵션을 사용하지 않으면 기본적으로 소스코드 파일과 같은 디렉토리에 바이트코드 파일이 생성됩니다.

-cp 클래스패스

-cp 옵션은 컴파일에 필요한 클래스패스를 지정하는 역할을 합니다. 클래스패스는 컴파일러나 실행 시에 클래스 파일을 찾을 수 있는 경로입니다. 여러 개의 경로를 지정할 때는 콜론(:)으로 경로를 구분합니다.

-source 버전

-source 옵션은 자바 소스코드의 버전을 지정하는 역할을 합니다. 이 옵션을 사용하여 컴파일할 소스코드의 버전을 명시적으로 지정할 수 있습니다.

4. 예시

다음은 javac 명령어를 사용하여 Hello.java 파일을 컴파일하는 예시입니다.

javac Hello.java

위 명령어를 실행하면 Hello.java 파일이 컴파일되고, Hello.class 파일이 생성됩니다.

만약 컴파일된 바이트코드를 다른 디렉토리에 저장하고 싶다면 -d 옵션을 사용할 수 있습니다.

javac -d classes Hello.java

위 명령어를 실행하면 Hello.java 파일이 컴파일되고, 컴파일된 Hello.class 파일이 classes 디렉토리에 저장됩니다.

소스코드가 여러 개의 파일로 이루어져 있다면 모든 파일을 한 번에 컴파일해야 합니다.

javac -d classes *.java

위 명령어를 실행하면 현재 디렉토리에 있는 모든 소스코드 파일이 컴파일되고, 컴파일된 바이트코드 파일은 classes 디렉토리에 저장됩니다.

또한 클래스패스를 지정하기 위해 -cp 옵션을 사용할 수도 있습니다.

javac -cp lib.jar Hello.java

위 명령어를 실행하면 Hello.java 파일이 컴파일되는 동시에 lib.jar 파일에 있는 클래스들을 참조하여 컴파일합니다.

명령 프롬프트 javac

명령 프롬프트 javac

마치며

javac 컴파일러는 자바 소스코드를 바이트코드로 변환하여 JVM에서 실행할 수 있는 형식으로 변환해주는 중요한 도구입니다. 옵션을 통해 컴파일 과정을 제어할 수 있으며, 클래스패스를 지정하여 필요한 클래스 파일을 참조할 수 있습니다. javac 명령어를 사용하여 자바 소스코드를 컴파일하면 소스코드와 같은 디렉토리에 바이트코드 파일이 생성되며, 다른 디렉토리에 저장하고 싶다면 -d 옵션을 사용할 수 있습니다.

추가로 알면 도움되는 정보

1. 자바 소스코드는 .java 확장자를 가지며, 컴파일된 바이트코드는 .class 확장자를 가집니다.
2. javac 컴파일러를 사용하여 여러 개의 소스코드 파일을 한 번에 컴파일할 수 있습니다.
3. -source 옵션을 사용하여 컴파일할 소스코드의 버전을 명시적으로 지정할 수 있습니다.
4. 클래스패스를 지정하는 옵션으로는 -cp 또는 -classpath가 있습니다.
5. 클래스패스는 여러 개의 경로를 지정할 수 있으며, ‘:’ 또는 ‘;’ 문자로 경로를 구분합니다.

놓칠 수 있는 내용 정리

-d 옵션을 사용하여 컴파일된 바이트코드를 다른 디렉토리에 저장할 수 있다는 점을 유의해야 합니다.
또한, 클래스패스를 지정하여 컴파일에 필요한 클래스 파일을 참조할 수 있습니다.

?키워드 의미 확인하기 1

?키워드 의미 확인하기 2