java -jar 실행시 외부 jar 파일에 대한 classpath 가 동작하지 않는다.

내가 만든 java 프로그램을 실행 가능한 jar 로 묶는다. 이때 외부 라이브러리를 사용하기 위해서 classpath 에 외부 라이브러리 경로를 적어주고 다음과 같이 실행을 한다.

java -jar myprogram.jar -cp (또는 classpath) "./lib/externaljar.jar" 

위 처럼 실행을 하면 externaljar.jar 에 정의된 클래스를 찾을 수 없다는 NoClassDefFoundError 와 같은 오류를 만나게 될것이다.

java -jar 형태로 실행하게 되면 외부 jar 경로를 명시한 classpath 는 무시된다. 해결 방법으로는 내가 만든 프로그램까지 모두 classpath 에 명시한 뒤 실행할 class 를 직접 명시하는 방법이다.

java -cp "./myprogram.jar:./lib/externaljar.jar" com.wordpress.referto.MainClass 

댓글 남기기