개발 공부 기록하기

Spring 프로젝트 만들기 - Intellij 오류 Cannot resolve symbol 'String' & Cannot resolve method 'run(Class String[])' 본문

프밍/Java

Spring 프로젝트 만들기 - Intellij 오류 Cannot resolve symbol 'String' & Cannot resolve method 'run(Class String[])'

태영(泰伶) 2023. 3. 18. 18:14

Spring 강좌로 유명하시다는 김영한님 입문 강의를 듣기 시작했다.

 

첫 번째, 두 번째 강의를 따라서

Spring 프로젝트 만들기에 돌입했다.

이제 조금 익숙해지나 싶었던 Eclipse가 아닌

다른 IDE인 Intellij를 사용하길 권장하신다는 강사님 말씀에

얼른 따라 설치했다.

 

https://start.spring.io/

스프링 프로젝트를  바닥에서부터 하나하나 만들던 예전과는 달리

이제는 간편하게 스프링 부트를 기반으로 프로젝트를 생성해주는 곳이라고 한다.

 

 

근데.. 응?

아무 것도 모른 채 일단 따라 만들고

그 파일을 Intellij에서 오픈했는데

빨간 밑줄 뭔데! 뭐냐고!ㅠㅠㅠ 나 아무것도 안 했는데 왜 오류야 왜ㅠㅠㅠㅠㅠ

 

저 화면에서 발생한 오류가 두 가지나 있었다.

 

첫 번째,  Cannot resolve symbol 'String'

두 번째,  Cannot resolve method 'run(Class String[])'

 

개발자는 문제 해결이 주 업무랬으니까!! 해 보자고 어디!(빠샤!)

 

 

자, 첫 번째부터 해결 들어간다..!!

 

Cannot resolve symbol 'String'

구글링 한 방에 나와준 쉬운 아이(문제)였다..

오류 발생 원인은 바로

*JDK 설치가 안 되어서였다.

(아니면 있던 JDK를 날려 먹어서 그럴 수도 있다고 한다.)

* JDK(Java Development Kit)

 

강의 따라서 한다고 했는데..?라는 의문도 잠시...

가만가만 Eclipse를 설치할 때를 떠올려보니까

다운로드 받은 JDK를 연결해주는 작업을 했던 것 같기도 하고...?

 

아하, 그럼 그게 안 돼서 문제가 발생됐던 거구나!

 

왼쪽 위 메뉴 File > Project Structure 클릭

 

나는 깔아뒀던 OpenJDK 21버전을 선택하고 OK를 눌러주었다.

 

JDK가 없으면 다운로드를 받으면 되는데, 아직도 현업에서는 8버전을 많이 쓴다고 한다.

 

사람들은 기존 프로젝트가 잘 돌아간다는 이유로 계속 낮은 버전을 쓴다고 하던데

난 하물며 전자기기 같은 걸 살 때도 최신 것을 선호하는지라

다운로드도 최신 것으로..ㅎㅎ

 

만약 JDK가 없다면 아래 링크로 가서 자신의 운영체제(OS)에 맞는 걸 다운로드 받으면 된다.

https://jdk.java.net/21/

 

OpenJDK JDK 21 Early-Access Builds

OpenJDK JDK 21 Early-Access Builds Documentation Build 14 (2023/3/16) These early-access, open-source builds are provided under the GNU General Public License, version 2, with the Classpath Exception. Notes Feedback If you have suggestions or encounter bu

jdk.java.net

OpenJDK가 일종의 **오픈 소스라고 한다. 

**오픈 소스(open source): 어떤 소프트웨어 프로그램을 개발하는 과정에 필요한 소스 코드나 설계도를 누구나 접근해서 열람할 수 있도록 공개하는 것. 누구나 수정 및 재배포가 가능하다고 함.

 

 

여기까지 잘 됐는지 확인해 보려고 Intellij를 껐다가 다시 켰는데

거짓말 같이 빨간 밑줄이 전부 사라져 있고,

아래쪽 창에 나온 No errors found by the IDE. 감쟈함니당ㅎㅎㅎ...

 

근데 어째서 에러 두 가지가 전부 해결된 거지?

두 번째 것도 찾아봐야겠다.

 

해결 된 건 좋지만 왜 해결된 건지 알고 넘어가야지.

 

 

Cannot resolve method 'run(Class String[])'

이것도 SDK를 올바른 경로의 JDK 버전으로 선택해주면 해결되는 문제라고 한다.

결국은 첫 번째 문제 상황과 해결 방법이 같았던 것이다.

스택오버플로우에서 제일 많은 추천을 받은 답변은

 

SDK와 Language level 버전을 같게 하면 된다고 적혀있는데 19랑 21로 다른데도 에러 없어졌는데..???

 

흠 이제 겨우 시작하는 단계인데 너무 오래 붙잡고 있는 건가.. 일단 질문하기로 강사님께 질문한 것 답변을 기다려봐야겠다.

 

 

 

 

+ 추가

 

알고보니 강의 교재에

프로젝트 JDK 설정을 하는 방법이라고

위의 첫 번째 에러에 대한 해결 방법이 적혀있었다.

(강사님이 이야기 한 JDK 11버전을 쓰지 않아서 발생한 일인가보다..ㅠㅠ

일반적으로는 자동으로 설정되기 때문에 이런 오류가 발생할 일이 없는 것 같다..ㅎ)

 

++  추가(23.03.20)

이후에 HelloController.java와 hello.html까지 만들고 나서 run을 했는데

unsupported class file major version 65

라는 에러가 발생했다.

찾아보니까 Gradle 시스템이 현재 Intellij에 적용된 JDK 버전과 맞지 않아서 발생한 문제라고 해서

결국 jdk 21을 지우고 원래 갖고 있던 jdk 19로 돌아가기로 했다..ㅠㅠ

안 맞는 jdk 버전이 무엇이냐에 따라서 에러 코드 마지막의 숫자는 달라질 수 있다고 한다. 

Comments