클래스패스(Classpath)는 자바 애플리케이션이 실행될 때 필요한 클래스 파일이나 라이브러리 파일들이 위치하는 경로를 지정하는 설정입니다. 자바 애플리케이션은 클래스패스를 통해 클래스 파일, 패키지, 외부 라이브러리(JAR 파일 등)를 어디서 찾을지를 확인합니다.
javac -cp .:lib/myLibrary.jar MyApp.java
는 현재 디렉터리(.
)와 lib/myLibrary.jar
를 클래스패스로 지정합니다.;
) 으로 구분합니다.java -cp .;C:\Java\API\mariadb-java-client-3.5.0.jar com.exam.MainClass
:
) 을 사용하여 여러 경로를 구분합니다. java -cp .:/usr/local/java/libs/mariadb-java-client-3.5.0.jar com.exam.MainClass
;
), Linux 및 macOS(:
)\
또는 /
), Linux 및 macOS(/
)클래스패스를 설정하는 방법에는 여러 가지가 있습니다:
1. 명령줄에서 직접 설정
javac
나 java
명령어에서 -cp
또는 -classpath
옵션을 사용해 클래스패스를 지정할 수 있습니다.javac -cp ".:lib/myLibrary.jar" MyApp.java
java -cp ".:lib/myLibrary.jar" MyApp
클래스패스 설정이 제대로 되어 있지 않으면 자바 프로그램에서 필요한 클래스나 라이브러리를 찾지 못해 ClassNotFoundException
또는 NoClassDefFoundError
오류가 발생할 수 있습니다. 올바른 클래스패스 설정은 자바 애플리케이션이 외부 라이브러리와 정상적으로 통합되도록 돕는 핵심적인 요소입니다.
leehayeon@ihayeon-ui-MacBookAir ~ % **cd** /Users/leehayeon/Desktop/java/project/JDBCEx02/out/production/JDBCEx02
leehayeon@ihayeon-ui-MacBookAir JDBCEx02 % ls
EmpListEx01.class EmpListEx04.class TestEx01.class
EmpListEx02.class InsertZipcodeEx01.class ZipcodeSearchEx01.class
EmpListEx03.class InsertZipcodeEx02.class
leehayeon@ihayeon-ui-MacBookAir JDBCEx02 % cd..
zsh: command not found: cd..
leehayeon@ihayeon-ui-MacBookAir JDBCEx02 % pwd
/Users/leehayeon/Desktop/java/project/JDBCEx02/out/production/JDBCEx02
leehayeon@ihayeon-ui-MacBookAir JDBCEx02 % java com.exam.TestEx01
Hello World
java -classpath .:/Users/leehayeon/Desktop/java/API/mariadb-java-client-3.5.0.jar com.exam.ZipcodeSearchEx01 역삼
이렇게 실행하면 맥OS 환경에서 mariadb-java-client-3.5.0.jar
라이브러리를 포함하여 com.exam.ZipcodeSearchEx01
클래스를 실행할 수 있습니다.