[Day 13 | DB] ClassPath 클래스패스

y♡ding·2024년 10월 30일
0

데브코스 TIL

목록 보기
86/163

클래스패스(Classpath)는 자바 애플리케이션이 실행될 때 필요한 클래스 파일이나 라이브러리 파일들이 위치하는 경로를 지정하는 설정입니다. 자바 애플리케이션은 클래스패스를 통해 클래스 파일, 패키지, 외부 라이브러리(JAR 파일 등)를 어디서 찾을지를 확인합니다.

클래스패스의 개념과 역할

  • 클래스패스의 목적: 자바 프로그램이 특정 클래스나 라이브러리 파일을 어디서 로드할지 알려주기 위해 사용됩니다.
  • 경로 형식: 클래스패스에는 디렉터리 경로나 JAR 파일의 경로를 포함할 수 있습니다. 여러 경로를 지정할 때는 운영체제에 따라 콜론(:) 또는 세미콜론(;)으로 구분합니다.
    • 예를 들어, javac -cp .:lib/myLibrary.jar MyApp.java는 현재 디렉터리(.)와 lib/myLibrary.jar를 클래스패스로 지정합니다.
  • Windows: 클래스패스 내 여러 경로를 세미콜론(;) 으로 구분합니다.
java -cp .;C:\Java\API\mariadb-java-client-3.5.0.jar com.exam.MainClass
  • Linux 및 macOS: 콜론(:) 을 사용하여 여러 경로를 구분합니다.
  java -cp .:/usr/local/java/libs/mariadb-java-client-3.5.0.jar com.exam.MainClass
  • 구분자: Windows(;), Linux 및 macOS(:)
  • 경로 표기: Windows(\ 또는 /), Linux 및 macOS(/)
  • 공백 경로: 경로 전체를 따옴표로 묶기

클래스패스 설정 방법

클래스패스를 설정하는 방법에는 여러 가지가 있습니다:
1. 명령줄에서 직접 설정

  • javacjava 명령어에서 -cp 또는 -classpath 옵션을 사용해 클래스패스를 지정할 수 있습니다.
javac -cp ".:lib/myLibrary.jar" MyApp.java
java -cp ".:lib/myLibrary.jar" MyApp

클래스패스에 포함할 수 있는 파일 및 디렉터리

  • 디렉터리 경로: 클래스 파일이 위치한 디렉터리를 포함할 수 있습니다.
  • JAR 파일: 외부 라이브러리, JDBC 드라이버, 기타 유틸리티 JAR 파일 등이 포함될 수 있습니다.

IDE를 통한 클래스패스 설정

  • Eclipse, IntelliJ IDEA 등 IDE에서는 프로젝트 설정 메뉴에서 필요한 JAR 파일을 추가하면 자동으로 클래스패스가 설정됩니다.
  • 예를 들어, 프로젝트에 라이브러리를 추가하면 클래스패스에 해당 라이브러리가 포함되어 컴파일 및 실행 시 자동으로 사용됩니다.

클래스패스 설정이 중요한 이유

클래스패스 설정이 제대로 되어 있지 않으면 자바 프로그램에서 필요한 클래스나 라이브러리를 찾지 못해 ClassNotFoundException 또는 NoClassDefFoundError 오류가 발생할 수 있습니다. 올바른 클래스패스 설정은 자바 애플리케이션이 외부 라이브러리와 정상적으로 통합되도록 돕는 핵심적인 요소입니다.


인텔리제이 없이 클래스 실행시키기 예시

  • hello world
    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
  • 터미널에서 ZipcodeSearchEx01 실행
    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 클래스를 실행할 수 있습니다.

0개의 댓글

관련 채용 정보