IT한 것

vscode에서 말도안되는 java compile error

lovian 2021. 4. 6. 16:29

최근 vscode 사용중에 remote ssh target에 재미가 들렸다.

생각보다 간편하게 원격지 서버에 코드를 올리고, 테스트하고 모듈을 기동할 수 있으니 이렇게 편할수가 없다.

 

그러던 중 이상한 현상이 발생했다.

이상하게도 java code assistant?가 멀쩡한 코드를 오류라고 말하기 시작했다. ;이 없다던가 )가 부족하다던가 하면서 말이다.

 

처음에는 어디 잘못닫았겠거니 했는데, 아무리 봐도 아니였고, gradle로 직접 빌드하면 아무 문제 없는 것을 확인 할 수 있었다.

여기저기 삽질한 결과 정리를 할 수 있었다.

 

1. 남들 다 하는 재시작

그렇다, 역사적으로 가장 확실한 방법 중에 하나.

이걸로 문제가 해결된다면, 행복한 편이다.

물론 자주 발생한다면, 어떻게든 다른 해결책을 찾아야겠다.

 

2. F1을 눌러 clean java language server workspace 후 재시작

java 언어를 해석해서 우리에게 알려줘야하는데, 이 녀석에 문제가 생기면 초기화하는 방법이 잘 통하는 편이다

 

3. OUTPUT탭에서 Language Support for Java를 확인

아무리 1, 2번을 반복해도 소용이 없는 경우가 있어 찾아봤다.

내 프로젝트를 이상하게 판단한 경우를보면, 대부분 이 정보창에서 예외가 발생하는 것을 확인했다.

물론 여기에 출력되는 값이 친절한건 아니라서 더 미궁에 빠질 수 있겠지만, 문제 해결의 실마리라도 찾을 수 있을지 모른다.

 

4. vscode를 종료하고 3번 창에서 확인한 .classpath, .project 파일 제거

아주 단순하게, build.gradle에서 패키지 이름을 변경하거나, 직접 .project에서 프로젝트 이름을 변경하면, 3번에 예외가 발생했다.

그냥 파일을 제거하면 더 꼬이는 것 같고, vscode를 종료하고 제거했다가 시작하니 깔끔하게 정리된 것 같다.

 

5. 와 그래도 해결안되는 3번 창에 예외..

이건 충격적일 정도 인데, 편집 창을 나누어 사용하고 있었는데, 단일 창으로 합쳤더니, 그냥 문제가 사라졌다.

remote 쓸때는 이걸 조금 주의해야할 것 같다.

그런데 잘 설명이 안되는것이.. 지금까지 창 나눠서 잘 쓰고 있었는데..

 

어쨋든 특이했던건 A.java 파일을 편집하고 있는데. A.java탭은 멀쩡하고, A.java+ 생긴 탭은 온통 오류 투성이로..

같은 파일에 대한 탭이 두개가 생겼다는것.

 

하여튼 혹시나 이런 경우를 만나면 그냥 하나의 창에서 작업하자. ^^