케이스윔의 개발 블로그

[JAVA] classpath 를 알아보자 본문

Study

[JAVA] classpath 를 알아보자

kswim 2022. 2. 20. 20:29

classpath란 무엇인가?

(class search path 라고 하기도 한다고 함)

  • 말그대로 클래스를 찾기 위한 경로
  • JVM이 프로그램을 실행할 때 클래스 파일을 찾기 위한 기준이 되는 파일 경로
  • 자바 런타임 환경에서 클래스와 다른 리소스 파일을 찾기위한 파일 경로 

 

사용법(?)

  • JDK tool에 의해서 -classpath 옵션을 셋팅하거나, CLASSPATH 환경변수를 통해 셋팅할 수 있다.
  • -classpath 옵션을 사용하면 다른 어플리케이션에 영향을 주지 않고 각 어플리케이션 각각 셋팅을 할 수 있어서 더욱 선호되는 방법이다.
sdkTool -classpath classpath1;classpath2...

set CLASSPATH=classpath1;classpath2...

sdkTool: command-line tool 예를 들어 java, javac, apt ...

classpath1;classpath2;.. : .jar, .zip 또는 .class 파일의 파일 경로를 의미

 

경로는 어떻게 표기하는가?

  • .class 파일을 포함하고 있는 .jar, .zip파일일 경우에는 classpath는 .zip 이나 .jar 파일이름이어야 한다.
  • .class 파일을 포함하고 있는 패키지가 없는 파일일 경우에는 파일 경로는 .class 파일을 포함하고 있는 디렉토리명으로 표기한다.
  • .class 파일을 포함하고 있는 이름이 있는 패키지의 파일이라면 root 패키지를 포함하고 있는 파일 경로로 표기한다.
  • 디폴트 classpath는 현재 디렉토리이다. 환경변수나 옵션을 사용하게 되면 이 디폴트 설정이 override 되기 때문에 현재 디렉토리를 포함하고 싶다면 "." 을 새로운 셋팅에 포함해야한다.

 

너무나 인텔리제이 환경에서 개발하는게 익숙해진 나머지.. 오랜만에 커맨드라인으로 이것저것 실행하다가 classpath 를 간단히 정리해보았는데 아래의 공식 도큐먼트를 직접 읽어보면 더 이해가 쉬울 수 있다!

https://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html

 

Setting the class path

Setting the class path Synopsis The class path is the path that the Java runtime environment searches for classes and other resource files. The class search path (more commonly known by the shorter name, "class path") can be set using either the -classpath

docs.oracle.com

 

Comments