예전 개발을 하면서 발생했던 vscode의 자바 버전 문제에 대한 부분이, 집에 있는 pc에서도 발생해서 설정하는 김에 기록해 둔다.

 

프로젝트는 JAVA8을 사용하기도 하고, 대부분의 프로젝트가 1.8에서 작업되어 mac에 1.8만 설치되어 있었다.

vscode의 java의 기본 확장팩인 Language Support for Java(TM) by Red Hat를 설치하여 사용하는데, 이게 최신버전의 경우 Java11 이상만 지원이 되도록 변경이 되었다.

Java11 이하의 버전이 설치되어있을때 발생

 

위와 같은 에러 문구가 뜨면서, 개발을 진행할 수가 없다.(응??)

 

이러한 문제를 해결하는 두가지의 방법이 있다.

 

1. Java 버전별로 설치하기

 Java11 이상의 버전을 설치해준다.

기존의 Java8을 삭제할 필요가 없다. 어차피 프로젝트 개발시에 사용해야 하므로!

중복 설치를 해준다. (난 AdoptOpenJDK를 설치해 줬다.)

 

 홈브루를 사용하면 설치를 명령어로 간단하게 설치가 가능하다.

( 참고할 만한 블로그 포스팅 : yonguri.tistory.com/119 )

 

/usr/libexec/java_home -V 

설치 후에 위의 명령어를 실행해보면 설치된 버전들이 확인이 된다.

설치된 자바버전들 확인가능

 

  •  vs code 설정하기

 나의 경우 한글팩을 깔아서 일단 메뉴바에서 [Code] - [기본설정] - [설정[커맨드+,]]를 선택해준다. 단축키인 커맨드키+,(콤마) 를 바로 눌러줘도 된다.

 설정검색 부분에다가 java.home을 입력해준다.

vscode 설정 화면

 검색된 Java:Home 부분에 settings.json에서 편집을 선택해준다.

settings.json 중간부분에 아래의 코드를 추가해준다.

/usr/libexec/java_home -V 를 통해 나와있는 각 버전별 java 경로들을 각각의 path에 입력해준다.

    "java.home": "/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home",
    "java.configuration.runtimes": [
        {
            "name": "JavaSE-1.8",
            "path": "/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home", // 기존 1.8 JDK SE
          },
          {
            "name": "JavaSE-11",
            "path": "/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home", // Open JDK 14 SE
            "default": true
          }
    ],

주의할 점은 "java.home" 이 부분에는 java11 이상의 버전 경로를 지정해줘야 한다는 점!

 

이후 settings.json을 저장해주고 vscode 재시작!

끝!

 

 

2. Language Support for Java(TM) by Red Hat 를 원하는 자바버전으로 설치하기

읭??? 이라고 생각할 수도 있지만, 그렇다 그들에겐 다 계획이 있었다.

 

 

플러그인의 톱니바퀴를 눌러서 [다른 버전 설치...] 선택

vscode의 확장:마켓플레이스 에서 해당 Java 확장팩을 설치할때나, 설치가 되어 있어도 위의 첨부 이미지처럼 원하는 다른 버전으로 설치를 할수가 있다.

 버전은 0.64.1을 선택하여 주면 Java8에서도 잘 동작하게 된다.

(관련 내용 :github.com/redhat-developer/vscode-java/issues/1543)

 

끝!

 

 

간단한 2번을 먼저 소개하지 않은 이유로는 ...

 2번의 방법처럼 Java8을 지원하는 버전을 이용하여도 좋지만, 개발하는 입장에서 프로젝트가 Java8만 이용하지는 않을거 아닙니까? (네?)

 

그럼 즐거운 코딩코딩!

+ Recent posts