Ways to Add JARs to Classpath in Java
1. 소개
Java 프로젝트 작업 중 외부 라이브러리에 의존하여 애플리케이션을 작성하는 경우가 많습니다.
이 기사에서는 이러한 라이브러리를 클래스패스에 JAR로 추가하는 다양한 방법을 살펴보겠습니다.
2. 커맨드 라인에서 -cp 또는 -classpath 사용하기
먼저, 커맨드 라인에서 프로그램을 실행하는 경우 JAR 의존성을 명령의 일부분으로 지정하는 것이 합리적일 수 있습니다:
java -cp /path/to/jar/file.jar com.example.MyClass
여기서 /path/to/jar/file.jar는 JAR 파일의 경로이고 com.example.MyClass는 실행할 클래스입니다.
여러 개의 JAR도 추가할 수 있습니다:
java -cp “lib/jar1.jar:lib/jar2.jar” com.example.MyClass
3. 커맨드 라인에서 CLASSPATH 사용하기
동일한 JAR가 동일한 머신에서 여러 자바 프로그램을 실행하는 데 필요할 수 있는 상황이 있을 수 있습니다.
이 경우, 매번 명령에서 클래스패스를 지정하는 대신 macOS/Linux에서 CLASSPATH 환경 변수를 설정할 수 있습니다:
export CLASSPATH=/path/to/jar/file.jar
Windows에서 동일한 작업을 수행하는 방법은 다음과 같습니다:
set CLASSPATH=C:\path\to\jar\file.jar
CLASSPATH를 설정하면 –classpath 옵션을 지정하지 않고도 자바 프로그램을 실행할 수 있습니다.
이와 같이 CLASSPATH를 설정하면 해당 터미널 세션에만 유효하다는 점에 유의해야 합니다. 터미널이 닫히면 설정이 사라집니다. 지속적으로 사용할 수 있도록 환경 변수로 클래스패스를 추가할 수 있습니다.
4. MANIFEST.MF 파일에서 클래스패스 지정하기
독립 실행형 애플리케이션을 만들 때, 모든 의존 JAR를 하나의 애플리케이션 JAR로 패키징하는 것이 도움이 됩니다.
이를 위해 JAR 파일의 MANIFEST.MF 파일에 클래스패스를 포함해야 합니다:
Manifest-Version: 1.0
Class-Path: lib/jar1.jar lib/jar2.jar
Main-Class: com.example.MainClass
그런 다음 이 매니페스트를 사용하여 애플리케이션 JAR를 생성합니다:
jar cvfm app.jar MANIFEST.MF -C /path/to/classes .
그 후 실행할 수 있습니다:
java -jar app.jar
이렇게 하면 lib/jar1.jar와 lib/jar2.jar가 클래스패스에 포함됩니다.
중요한 점은 Class-Path 옵션이 CLASSPATH 환경 변수와 –classpath 커맨드라인 옵션보다 우선한다는 것입니다.
5. lib/ext 디렉토리에 JAR 추가하기
Java 설치의 lib/ext 디렉토리에 JAR을 추가하는 것은 레거시 메커니즘이며, 이곳에 배치된 JAR 파일은 자동으로 클래스패스에 추가됩니다. 그러나 이는 대부분의 사용 사례에 대해 권장되는 접근 방식이 아닙니다.
이 JAR들은 외부 클래스 로더에 의해 로드되므로 CLASSPATH 환경 변수에 지정된 JAR이나 –classpath 또는 –cp 옵션에 지정된 디렉토리보다 우선 권한을 가집니다.
6. Eclipse/IntelliJ IDE에서 JAR 추가하기
Eclipse나 IntelliJ와 같은 인기 있는 IDE를 사용하여 프로젝트의 클래스패스에 JAR 파일을 쉽게 추가할 수 있습니다.
자세한 지침은 IDE 별 문서를 참고하여 가장 정확하고 최신의 가이드를 확인할 수 있습니다.
7. 빌드 도구 사용하기
위의 방법들은 소규모 프로젝트에 잘 작동하지만, 대규모 및 소규모 프로젝트 모두 빌드 도구의 이점을 활용할 수 있습니다. Maven과 Gradle은 이 목적에 사용되는 인기 있는 빌드 도구입니다.
프로젝트가 표준 Maven 프로젝트 구조를 따른다고 가정할 때, 의존성과 그 전이 의존성을 프로젝트에 포함시킬 수 있습니다:
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>example-library</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
그런 다음 다음 명령을 실행합니다:
mvn package
Maven은 이러한 JAR을 클래스패스에 포함시켜 줍니다.
우리는 빌드 도구의 개념과 IDE를 조합하여 클래스패스에 JAR을 추가하는 작업을 더욱 간소화할 수 있습니다.
8. 결론
외부 라이브러리를 사용하는 것은 Java 개발의 기본 작업입니다.
JAR을 추가하는 방법은 프로젝트의 복잡성 및 요구 사항에 따라 달라집니다. 빠른 테스트나 스크립트의 경우 간단한 커맨드 라인 옵션으로 충분할 수 있습니다. 대규모 프로젝트의 경우 Maven이나 Gradle과 같은 강력한 도구를 사용하여 프로젝트 의존성을 관리해야 할 가능성이 높습니다.