STS에서 boot dashboard를 이용하여 어플리케이션을 실행했는데
아래와 같은 메시지가 출력되면서 실행이 안됨
기본 클래스 xxx.yyyy.bbb.Application 찾거나 로드할 수 없습니다.
작업한건 gradle 에서 라이브러리 몇개 추가한거 밖에 없는데
불과 1분전에 구동된 서버가 구동이 안됨
이리 저리 삽질을 하다가 6시간 뻘짓을 하다가 구글링으로 찾아냄
이클립스/STS -> 상단에 Run -> Run Configurations -> Spring Boot App -> 에러가발생한 어플리케이션
-> classpath -> Use temporary Jar to specify classpath 체크
어플리케이션을 재시작하면 정상 구동 된다.
원인 : classpath를 구성하는 문자열의 길이가 길어서 발생하는 문제
위처럼 임시로 jar파일을 생성하는 옵션을 추가하거나
(테스트 코드를 작성할때에도 동일한 에러가 발생하기 때문에 불편함)
gradle을 이용해서 프로젝트를 구성하고 있는데
eclipse에서 확인해보면 참조되는 라이브러리 경로는 아래처럼 구성된다.
${GRADLE_USER_HOME}/caches/modules-2/files-2.1/${group}/${name}/${version}/${hash}/fileName.jar
참조되는 라이브러리가 많아지면 classpath 길이가 길어지게 되고 클래스를 찾을 수 없다는 에러가 발생하게 된다.
classpath를 줄일 수 있는 방법은 GRADLE_USER_HOME 디렉토리를 짧게 변경하면 어느정도 줄일 수 있다.
기본적으로 GRADLE_USER_HOME 은 윈도우 기준으로
c:\users\${userID}\.gradle 로 세팅된다.
GRADLE_USER_HOME 변경하기
https://hulint.tistory.com/34
'java' 카테고리의 다른 글
gradle_user_home 디렉토리 설정 (0) | 2020.04.23 |
---|---|
Springboot change timezone (0) | 2020.04.21 |
spring boot lazy-loading 사용시 에러 (0) | 2020.01.30 |
springboot 핸들바 auto configuration (0) | 2019.10.08 |
openjdk 설치 (0) | 2018.12.10 |