이클립스에서 Maven Dependency에 잘 등록하였고, jar파일도 조회가 되는 데 프로그램을 실행할 때 org.h2.Driver ClassNotFuondException이 발생하는 경우가 있습니다. 원인은 Maven 설정에 있습니다.
1. 원인 찾기 :
- Could not load requested class : org.h2.Driver
프로그램을 실행하면 위와 같은 오류가 발생합니다.
Caused by: java.lang.ClassNotFoundException: Could not load requested class : org.h2.Driver
...
2. Maven 설정 점검 및 Maven Dependency 점검
pom.xml
pom.xml을 살펴보면 h2 database가 설정이 되어 있습니다.
위의 depedency 정보는 mvnrepository에서 가져왔습니다.
Maven Repository는 다양한 jar 라이브러리의 의존성 설정 부분을 최신 버전과 함께 조회할 수 있는 사이트입니다.
여기서 가져온 설정에 문제가 있습니다.
3. Maven Dependency 설정의 scope 변경
변경 전
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.1.214</version>
<scope>test</scope>
</dependency>
dependency 설정에서 Scope는 라이브러리의 적용 범위를 정합니다.
여기서 <scope> 설정이 test로 되어 있으면 실행 시 라이브러리를 찾을 수 없습니다.
이 설정을 삭제하면 됩니다.
<scope> 설정의 기본 값은 compile이며, 컴파일 및 실행 모두 Maven Repository에 설정된 라이브러리를 참조하게 됩니다.
dependency 설정의 Scope에 대한 보다 상세한 내용은 아래 링크를 참고해 주세요.
https://dev-handbook.tistory.com/67
변경 후
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.1.214</version>
</dependency>
위와 같이 설정하면 컴파일 및 실행 시에도 라이브러리를 참조하므로 ClassNotFoundException 문제를 해결할 수 있습니다.
이후에는 프로그램 실행 시 org.h2.Driver를 잘 찾는 것을 확인할 수 있습니다.
'DevOps > DB, Oracle, MariaDB' 카테고리의 다른 글
[MariaDB] MariaDB 알아보기, 다운로드 및 설치하기, 제거하기 (0) | 2022.09.13 |
---|---|
[Oracle] Oracle XE에서 사용자 생성 오류, ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다. invalid common user or role name (0) | 2022.08.02 |
[SQL Developer] SQL Developer에서 DBMS_OUTPUT, DBMS 출력 확인 하는 방법 (0) | 2022.05.04 |
[SQL Developer] Oracle SQL Developer 다운로드 및 설치 (0) | 2022.05.03 |
[Oracle] Oracle XE 다운로드, 설치 및 주의사항 (0) | 2022.04.24 |
댓글