Java - 클래스 패스

Yuri Lee·2020년 9월 29일
0

Java

목록 보기
17/23

클래스 하나는 하나의 클래스 파일이 된다.

클래스의 경로

클래스 패스라는 것은 자바를 실행할 때 클래스의 위치를 지정하는 역할을 하는 것이다. 클래스 패스는 자바 애플리케이션이 사용하고 있는 클래스가 여러 경로에 분산되어 있을 때 유용하게 사용할 수 있는 방법이다.

지금까지는 자바를 실행할 때 클래스 패스를 지정하는 방법을 알아봤다. 실행 할 때마다 클래스 패스를 지정하는 것이 귀찮다면 클래스 패스를 시스템의 환경변수로 지정하면 된다.

환경변수

환경변수는 운영체제에 지정하는 변수로 자바 가상머신과 같은 애플리케이션들은 환경변수의 값을 참고해서 동작하게 된다. 자바는 클래스 패스로 환경변수 CLASSPATH를 사용하는데 이 값을 지정하면 실행할 때마다 -classpath 옵션을 사용하지 않아도 되기 때문에 편리하다. 하지만 운영체제를 변경하면 클래스 패스가 사라지기 때문에 이식성면에서 불리할 수 있다.


클래스는 실행 시 각각 하나의 클래스 파일을 갖는다. 파일 실행 시에 실행하려는 클래스의 파일과 내부적으로 필요로 하는 클래스의 파일이 서로 다른 디렉토리에 위치한다면 에러가 발생한다. 이런 경우 다른 디렉토리에 있는 클래스가 "어떤" 다른 클래스에 있는지 알려줘야하는데, 이 때 classpath를 사용한다.
즉, classpath는 실행하려는 파일이 필요로 하는 클래스들의 후보들을 어디에서 찾아야 할지 지정해주는 옵션이다.
따로 classpath옵션을 지정하지 않는다면 java는 당연히 기본적으로 현재 디렉토리 안에서 클래스를 찾는다.
즉 classpath를 지정하지 않는 것은 java classpath "."으로 지정하는 것과 완전히 같은 의미이다.

다른 사람이 만든 로직을 가져와서 쓰고싶다거나, 여러 어플리케이션이 공통된 로직을 공유하는 경우 클래스패스가 사용될 것이다.

그러나 컴파일 할 때마다 매번 classpath를 지정해주기는 어렵기때문에 운영체제 자체의 classpath를 지정할 수가 있는데, 이것이 바로 환경변수 설정이다


이 글은 생활코딩의 자바 강좌를 바탕으로 정리한 내용입니다.

profile
Step by step goes a long way ✨

0개의 댓글