Spring Framework/Spring

[Spring] Error: Could not find or load main class test

Razelo 2021. 1. 22. 23:38

 

user 서비스 컴포넌트를 만드는 중이었는데, 마지막에 Client 클래스를 만들어서 최종으로 실행시키려고 했다. 

원래대로라면 스프링 컨테이너가 정상적으로 구동되면서 관리자님 환영합니다.!  라는 메시지가 출력되어야 했다. 

 

그런데 정말 무슨 짓을 해도 저 에러가 사라지지 않았다. 

 

저 에러가 뜨기 직전에 한 행동은 한개의 일반 자바소스파일을 하나 더 만든것 뿐이다. 환경변수도 절대 건드리지도 않았고, build path 라던지 문제가 될만한 건 아무것도 건드리지 않았다. 그냥 코딩만 하고 있었다.... 

 

그런데 갑자기 저 에러가 떠버려서 이리저리 찾아봤는데, 정말 도움이 될만한 정보를 얻지 못했다. 

 

1. 환경변수 바꾸기 -> 확인해봤는데, 잘 설정되어 있었다. 혹시 몰라서 정석대로 다시 설정해봤고, 조금 다른 방법으로도 다시 설정해봤다. 

2. Refresh 하기. 그리고 프로젝트 클린하기 -> 이건 원래 습관적으로 하는건데, 이것도 계속 했다. 

3. 그냥 이클립스EE 다시 깔기.  

4. 마지막 방법

 

그리고 위에 있는 모든 방법들이 효과가 없었다. 

 

마지막으로 한 방법이 통했다. 왜인지는 모르겠지만, 우선 work-space 를 새로 바꿔주었다. 그리고 나서 블로그들을 돌아다니면서 언뜻 스쳐지나간 말 중에 프로젝트에서 패키지를 많이 만들어서 관리할 경우에 메인을 찾을 수 없다는 에러가 발생할 수 있다는 글을 본 기억이 나서 어떻게 할까 생각하다가 옆에 있는 패키지로 해당 실행 클래스를 옮겨서 실행했는데, 그제서야 실행이 됬다. 

 

옆에 있는 패키지는 패키지명이 polymorphism 으로 간단하고, 원래 에러가 발생하던 경로는 src/test/java/com/springbook/biz/board/BoardServiceClient.java였다. 여기에서 패키지가 길게 잡혀있어서 에러가 발생한건가? 그 블로그가 어디였는지 잘 기억이 안나는데, 

 

프로젝트에서 패키지가 길게 잡혀있다고 해서 왜 이게 에러가 날일인지 전혀 모르겠다. 왜 main을 찾지 못하는지도 이해가 가지 않는다. 

 

어쨌든 옆에 있는 패키지로 옮겨서 실행하니 잘 된다... 다음부터 이런일이 있으면 또 패키지 명을 바꿔야 하는건가...? 

 

근데 좀 찜찜하네... 계속 이렇게 할 수도 없고.. 

 


 

글을 쓰고 난 뒤에 다시 해봤다. 원래 에러가 있던 패키지가 존재하는 곳이 src/test/java 폴더였다. 여기서 패키지를 계속 새로 만들어서 진행해도 계속해서 같은 에러가 났다. 근데 중요한건 해당 실행 클래스를 다른 폴더의 패키지에 넣어서 실행하면 아주 잘 동작했다.

 

그래서 폴더에 문제가 있다고 판단했다. 그래서 src/test/java 폴더를 통째로 지우고, 그 경로 그대로 새로 만들어 주고, 그 안에 새로 패키지도 만들어준 뒤 실행 클래스를 넣고 실행했더니 잘 작동했다. 

즉 폴더가 인식이 안됬다던가. 그러한 류의 문제였던 것 같다.

 

다음부터 ClassNotFoundException 류의 에러가 발생하는데 계속해서 에러가 해결되지 않으면 굳이 뻘짓하지 말고, 해당 경로의 폴더를 이클립스에서 삭제해주고 새로 만들어서 진행해보자. 

반응형