본문 바로가기

프로그래밍 언어/Java

Java 컴파일 명령어와 옵션 사용법 정리

Java 컴파일 명령어와 옵션 사용법 정리

Java 프로그램을 개발할 때는 소스 파일을 컴파일하여 실행 가능한 클래스 파일로 변환해야 합니다. 이를 위해 사용하는 기본 도구가 바로 javac 컴파일러입니다. 하지만 단순 컴파일을 넘어 여러 옵션을 활용하면 효율적이고 유연하게 프로그램을 관리할 수 있습니다. 이번 글에서는 javac 명령어와 주요 옵션들에 대해 자세히 알아보겠습니다.

 

 

목차

  1. javac 명령어의 기본 사용법
  2. 클래스 파일의 저장 위치 지정: -d 옵션
  3. 경로 설정을 위한 -classpath 옵션
  4. 경고 표시 제어: -Xlint 옵션
  5. 소스 파일 버전 호환성 설정: -source 및 -target 옵션
  6. 기타 유용한 컴파일 옵션들

 

1. javac 명령어의 기본 사용법

Java 소스 파일을 컴파일하려면 javac 명령어를 사용합니다. 기본 형식은 다음과 같습니다.

javac 파일명.java

 

예를 들어, HelloWorld.java라는 파일을 컴파일하려면 다음과 같이 명령어를 입력합니다.

javac HelloWorld.java

이 명령어를 실행하면 동일한 디렉토리에 HelloWorld.class라는 컴파일된 파일이 생성됩니다. 이 기본적인 사용법을 바탕으로, 다양한 옵션을 추가하여 컴파일 과정에서 더욱 많은 설정을 할 수 있습니다.

 

 

 

2. 클래스 파일의 저장 위치 지정: -d 옵션

기본적으로 javac는 클래스 파일을 소스 파일과 동일한 디렉토리에 저장합니다. 그러나 -d 옵션을 사용하면 클래스 파일의 저장 위치를 지정할 수 있습니다.

javac -d [디렉토리 경로] 파일명.java

 

예를 들어, output 폴더에 컴파일 결과를 저장하고 싶다면 다음과 같이 입력합니다.

javac -d output HelloWorld.java

-d 옵션은 프로젝트를 구조화하고, 컴파일 결과를 원하는 경로에 맞게 배치할 때 유용하게 사용됩니다.

 

 

 

3. 경로 설정을 위한 -classpath 옵션

-classpath 옵션은 컴파일러가 참조해야 할 클래스나 라이브러리 경로를 지정하는 데 사용됩니다. 이를 통해 외부 라이브러리를 활용하거나 복잡한 프로젝트의 종속성을 관리할 수 있습니다.

javac -classpath [경로] 파일명.java

 

예를 들어, lib 폴더에 필요한 라이브러리가 있다면 다음과 같이 설정합니다.

javac -classpath lib/HelloLibrary.jar HelloWorld.java

여러 경로를 지정할 경우 각 경로를 :로 구분합니다(Windows의 경우 ; 사용).

 

 

 

 

4. 경고 표시 제어: -Xlint 옵션

-Xlint 옵션을 사용하면 컴파일 시 발생할 수 있는 다양한 경고를 확인할 수 있습니다. -Xlint 뒤에 구체적인 경고 유형을 지정하면 특정 경고만 활성화하거나 비활성화할 수 있습니다.

javac -Xlint 파일명.java

 

예를 들어, 모든 경고를 활성화하려면 -Xlint:all을, 특정 경고만 확인하려면 해당 경고명을 지정할 수 있습니다.

javac -Xlint:deprecation HelloWorld.java

이 옵션은 코드의 문제를 사전에 파악하고, 더 안정적이고 깨끗한 코드를 작성하는 데 도움이 됩니다.

 

 

 

5. 소스 파일 버전 호환성 설정: -source 및 -target 옵션

프로젝트마다 사용하는 Java 버전이 다를 수 있습니다. -source-target 옵션은 소스 코드의 Java 버전을 명시하고, 생성된 클래스 파일의 호환성을 설정하는 데 사용됩니다.

javac -source [버전] -target [버전] 파일명.java

 

예를 들어, Java 11로 작성된 코드를 Java 8과 호환되게 컴파일하려면 다음과 같이 입력합니다.

javac -source 11 -target 8 HelloWorld.java

-source-target을 적절히 설정하면, 다양한 버전의 Java 환경에서 실행할 수 있는 클래스를 생성할 수 있습니다.

 

 

 

6. 기타 유용한 컴파일 옵션들

javac는 위에서 다룬 옵션 외에도 여러 가지 유용한 설정을 제공합니다. 여기 몇 가지 추가적인 옵션을 소개합니다.

  • -encoding: 소스 파일의 인코딩 방식을 지정합니다.
    javac -encoding UTF-8 파일명.java
  • -g: 디버깅 정보를 추가합니다.
    javac -g 파일명.java
  • -verbose: 컴파일 과정의 상세한 정보를 출력합니다.
    javac -verbose 파일명.java

위와 같은 다양한 옵션을 조합하여 컴파일 과정을 효율적으로 관리할 수 있으며, 특히 큰 프로젝트에서 디버깅과 관리에 큰 도움을 줄 수 있습니다.