인텔리제이에서 실행(문제 없음)
스프링으로 프로젝트 생성 후에 인텔리제이에서 실행시킨모습이다.
정상적으로 잘 작동하였고 localhost도 잘 띄워진다
터미널에서 실행(문제 생김)
문제 발생
문제는 터미널에서 실행시켰을때 문제가 발생한다. 참고로 윈도우 기준이다
Spring프로젝트 폴더인 hello-spring디렉터리 안에서 gradlew.bat 파일을 명령어 ./gradlew.bat build 를 통해서
실행할려는 순간 오류가 발생한다(참고로 맥은 gradlew파일을 빌드하면 되는걸로 안다)
오류 내용
쉽게 얘기하면, 실행할려는 파일의 자바 버전은 17인데 컴퓨터가 빌드하는데 사용하는 자바 버전은 8이라는 내용이다.
문제는 여기부터다.
버전 관련 내용들
- 자바 버전이 알맞게 17로 설정되어있는것을 알 수 있다. 그렇다면 인텔리제이 build의 문제인가?
- 17로 설정되어있는 gradle
아쉽게도 프로젝트 gradle과 인텔리제이 settings의 자바 버전문제도 아니다.
- 그렇다면 환경 변수 문제일까? -> 이건 의심을 크게 안했던게 java --version 17로 맞게되어있었다
JAVA_HOME을 jre-1.8로 설정해두었고 17버전을 써야하기때문에 jdk-17\bin을 더 위에 위치시켰다.
이것이 문제였다. JAVA_HOME을 jdk-17로 변경하고 실행했어야했는데 버전 충돌이 났다.
자바 버전 충돌 이유
환경 변수와 자바 홈 설정이 복잡할 경우, 여러 경로가 겹치거나 버전 충돌할 수 있다.
해결법
- 먼저 JAVA_HOME을 8버전에서 17버전 디렉터리 위치로 변경해준다.
- 이후 환경 변수에 둔다, 이때 다른 버전의 자바\bin을 환경변수에 넣지말자
사실은 자바 버전 변경할일이 몇번 있어서 JAVA_HOME따로 생성안하고 jdk-17\bin, jdk-11\bin 이런식으로
전에 저장해두고 위치 변경하는 식으로 버전 변경했는데 왜 그렇게 하면 안되는지 알았다. 따라서 앞으로는
JAVA_HOME의 디렉터리 버전 위치변경을 통해 버전 변경을 진행하는게 맞는것 같다.
작동 확인
이제 빌드가 정상적으로 작동함을 확인할 수 있다.
'자바(Java)' 카테고리의 다른 글
[자바] 람다식(lamda) (3) | 2023.11.09 |
---|---|
[자바] 제네릭(Generic) (1) | 2023.11.02 |
[자바] 자바 I/O (1) | 2023.10.14 |
[자바] 자바 어노테이션 (1) | 2023.10.05 |
[자바] 자바 Enum (0) | 2023.09.27 |