본문 바로가기

소프트웨어/일반

[VS Code] java 11 or more recent is required to run 에러 해결

 

Spring boot 개발을 Visual studio code에서 잘 진행중에 있었습니다.

그러던 오늘 아침, 갑자기 에러 팝업이 뜨면서 정상 동작을 하지 않는 현상이 발생! ㅠㅠ

 

JDK 11 이상을 써야한대요

 

java 11 or more recent is required to run please download and install a recent jdk

 

 

Spring boot extension package는 여러개의 extension에 dependency가 걸려있는데요, 아래의 Language support for Java(TM) by Red Hat에서 문제가 발생한 것이었습니다.

 버전 0.65.0부터 최소 JDK를 11로 변경해버린거죠. 

Require Java 11 to run the extension

 

 

 Eclipse 플랫폼이 2020 9월부터 Java11을 최소 JDK로 못을 박아두었고 해당 확장 프로그램은 Eclipse JDT.LS 서버를 참조하므로 이에 대응하기 위해서 확장 프로그램 역시 최소 JDK를  따라갈 수밖에 없다고 합니다.

 

 추가로 runtime 환경을 기존과 대응하기 위해 위해 "java.confirugation.runtimes"를 추가하였습니다. 

https://github.com/redhat-developer/vscode-java/wiki/JDK-Requirements#java.configuration.runtimes

 

 

 

 사실 제일 쉬운 방법을 기존 JDK를 삭제하고 새로운 JDK를 설치하는 것이지만,, 다른 IDE나 프로젝트에 영향이 갈 수가 있을 수 있어 별도의 Open JDK 14를 다운받아 설치하고 VS Code의 설정만 변경하는 방식으로 진행하였습니다.

 

 

 

 

1. Open JDK(https://openjdk.java.net/)로 이동하여 11 이상의 JDK를 다운로드 받아주고 적절한 위치에 압축 파일을 해제합니다. 이 글을 읽는 당신이라면 다 알겁니다.

 

 

2. VS code로 돌아와 File > Preference > Settings (혹은 Ctrl+,)

 

 

3. 검색창에 java.home을 타이핑 하면 아래와 같이 창이 뜨는데 "Edit in settings.json"을 클릭해줍니다.

 

4. 아래와 같이 새로 받은 JDK 경로를 지정해 주고(저는 D드라이브에 jdk-14.0.2에 JDK를 풀었습니다.)

"java.home": "D:\\jdk-14.0.2",
"java.configuration.runtimes": [
    {
        "name": "JavaSE-1.8",
        "path": "C:\\Program Files\\Java\\jdk1.8.0_202", // 기존 1.8 JDK SE
      },
      {
        "name": "JavaSE-14",
        "path": "D:\\jdk-14.0.2", // Open JDK 14 SE
        "default": true
      }
]

 

2020-08-04 추가

(https://marketplace.visualstudio.com/items?itemName=redhat.java 에서 Setting the JDK 항목 참조)

 JDK가 여러개인 경우 default 옵션을 주는 항목은 JDK11 이상으로 설정해줘야합니다. VS code에서 standalone Java를 참조할 때에 default로 명시된 JDK를 사용하기 때문입니다.

 

 

 별도의 설정이 없는 Java 파일을 하나 만들어서 열어보면 JDK를 "JavaSE-14"를 사용하고 있는 것을 확인할 수 있습니다.

JDK 14를 보고 있다.

 

 

 

 반면에 현재 개발중인 스프링 부트 프로젝트의 JDK 버전은 1.8로 설정이 되어 있기 때문에 이 프로젝트에서는 아래와 같이 "JavaSE-1.8"을 사용 하고 있습니다.

JDK 1.8을 보고 있다.

 

 

 

 

5. 이후 저장 후 재시작합니다.

 

 

 

 

 

 

깜짝놀랬엉...

 

 

 

참고:

https://stackoverflow.com/questions/63043585/vscode-showing-java-11-or-more-recent-is-required-to-run-please-download-and-i

 

VSCode showing "Java 11 or more recent is required to run. Please download and install a recent JDK"

VSCode started showing me today a pop-up saying "Java 11 or more recent is required to run. Please download and install a recent JDK". I need to use the JDK 8 (working on Apache Beam an...

stackoverflow.com