제니노트

classpath 설정하기 [자바] 본문

Java/Java 입문

classpath 설정하기 [자바]

yangjennie 2023. 2. 23. 10:01
반응형

이클립스를 사용하면 잘 볼일 없겠지만 터미널로 자바를 사용할 때 요긴하게 쓸 수 있는 기능이다.

 

일단, 먼저 작성한 파일을 보면

 

이렇게 Import 로 라이브러리를 사용한다. 

하지만 편의상 해당 라이브러리를 명시한 경로와 달리 다른 폴더 내에 위치시켰다고 가정한다.

 

이렇게 위치되어 있다. 컴파일을 해서 class 파일이 생성되어 있다. ㅠㅠ 지우기 귀찮아요..ㅎㅎ

lib 폴더 내에 org.opentutorials.iot 라이브러리가 있는 것이다 그래서 OkJavaGoInHome.java 파일에 작성된 import와는 경로가 사뭇다르다. 

 

물론 소스파일 내에서 경로를 제대로 적어줘서 파일을 작동 시킬 수도 있겠지만.. Elavator.java 도 라이브러리 몇개가 엮어져 있어 상당히(?) 귀찮은 작업이 된다.

 

그럼 원래 하던대로 컴파일을 해보자

에러가 난다. import 한 라이브러리의 경로가 잘못되었다는 에러이다.

 

그래서 classpath를 설정해줄 것인데, 설명을 한 번보자. 

여기서 classpath,cp 명령어의 설명을 보자 사용자 클래스 파일 및 주석 프로세서가 있는 위치를 지정해준다라고 나와있다. 

이렇게 외부 라이브러리를 포함해서 컴파일을 하기 위해서는 --class-path(-cp) 옵션을 이용해서 외부 라이브러리도 함께 지정해야한다. 

 

cp의 사용방법은 이러하다.

 

javac -cp ".:lib" OkJavaGoInHome.java

윈도우의 경우 ; 로 바꾸어 사용하면 된다. 이 때 콜론(:) 이나 세미콜론(;)은 구분자의 의미를 갖는다. 

위의 뜻은 자바 파일이 있는 현재 폴더(.) 와 lib 폴더에서 필요한 자바 파일들을 컴파일 하라는 의미이다.

 

실행 할때도 외부 라이브러리를 포함하여 실행해야 하므로

java -cp ".:lib" OkJavaGoInHome

위와 같이 실행하면 된다. 

 

그러면 실행이 잘된다:)

 

 

참고 강의 : https://www.boostcourse.org/cs126/lecture/141729?isDesc=false

반응형
Comments