로그인 회원가입
모두인포
전체IT경제사회생활스포츠시사여행연애

자바 클래스패스(Classpath)

lmkfox · 2025-07-18 · 조회 0
자바 클래스패스(Classpath)
1. 클래스패스(Classpath)란? - 클래스패스는 자바 프로그램이 **클래스 파일(.class)**이나 **라이브러리(JAR 파일)**를 어디서 로드할지 알려주는 경로입니다. - 컴파일 시(javac)와 실행 시(java) 모두 클래스패스를 사용합니다. 2. 기본 동작 - 클래스패스를 지정하지 않으면, 자바는 **현재 작업 디렉토리(.)**를 기본 클래스패스로 사용합니다. java MyClass - 위 명령은 현재 폴더(.)에서 MyClass.class를 찾습니다. 3. 클래스패스 지정 방법 1) 명령어에서  -classpath  또는  -cp  옵션 사용 java -classpath .;lib/mylib.jar com.example.MyClass - Windows는 경로 구분자로 ; 사용 - macOS/Linux는 : 사용 java -cp .:lib/mylib.jar com.example.MyClass 2) 환경 변수  CLASSPATH  설정 export CLASSPATH=.:/usr/local/java/lib - 단, 명령어로 지정한 클래스패스가 환경 변수보다 우선합니다. 4. 클래스패스의 대상 클래스패스에 지정할 수 있는 항목: - 디렉토리: .class 파일이 들어 있는 디렉토리 - JAR 파일: 라이브러리로 제공되는 .jar 파일 - 와일드카드: JAR 파일들을 한꺼번에 포함 가능 java -cp ".:lib/*" com.example.Main - 위 예시는 lib 디렉토리 안의 모든 JAR 파일을 포함 5. 예제 디렉토리 구조 project/ ├── com/ │ └── example/ │ └── Hello.java 컴파일 javac com/example/Hello.java 실행 (현재 디렉토리를 클래스패스로 지정) java -cp . com.example.Hello 6. 클래스패스가 잘못되면? - ClassNotFoundException 또는 NoClassDefFoundError 발생 - 주로 다음 상황에서 오류 발생 - 경로 지정 실수 - JAR 파일 누락 - 클래스의 패키지 경로와 실제 위치 불일치 7. IDE와 클래스패스 - IntelliJ, Eclipse 등의 IDE는 프로젝트 설정에서 자동으로 클래스패스를 관리합니다. - 하지만 빌드 도구(Maven, Gradle)를 사용하면 classpath는 dependencies로 명시적으로 관리됩니다. 8. 관련 명령어 요약 명령어 설명 -cp 또는 -classpath 클래스패스를 지정 java 클래스 실행 javac 클래스 컴파일 echo $CLASSPATH 환경 변수 클래스패스 확인 java -verbose:class 로딩되는 클래스 정보 출력 9. 클래스패스 vs 모듈패스 (Java 9 이상) - Java 9부터는 모듈 시스템이 도입되어 --module-path를 사용하는 경우도 있음 - 그러나 대부분의 기존 애플리케이션과 라이브러리는 여전히 classpath 기반 결론 자바 클래스패스는 자바 프로그램이 클래스 파일을 어디서 찾을지 정의하는 경로로, 명확하게 이해하고 설정하지 않으면 실행 오류가 발생할 수 있습니다. 특히 여러 라이브러리를 사용하는 프로젝트에서는 클래스패스를 올바르게 설정하는 것이 매우 중요합니다.

댓글

아직 댓글이 없습니다.

로그인 후 댓글을 남길 수 있습니다.