개발 노트

IntelliJ Java 버전 안 맞을 때 확인할 곳 | Project SDK·Gradle JVM·JAVA_HOME

nocklock 2026. 10. 6. 08:30

java 버전 가이드

 

새 노트북에 개발환경을 다시 세팅하면서 JDK 17을 설치했다.

터미널을 열고 가장 먼저 확인한 건 이것이었다.

java -version

 

원하는 버전이 정상적으로 나왔다.

예전 같으면 여기서 그냥 넘어갔을 수도 있다.

그런데 IntelliJ까지 다시 설정하다 보니 한 가지를 다시 생각하게 됐다.

 

Windows에서 Java 17이 나온다고 해서 IntelliJ와 Gradle도 반드시 Java 17을 사용하는 건 아니다.

 

평소 사용하던 컴퓨터에서는 이미 설정이 끝나 있어서 크게 신경 쓰지 않았던 부분이다.

새 노트북에서 처음부터 개발환경을 다시 만들다 보니 Java 버전을 확인해야 하는 위치가 생각보다 여러 군데라는 게 다시 보였다.

새 노트북 개발환경을 처음부터 구성했던 과정은 이전 글에 따로 정리했다.

→ Windows 새 노트북 개발환경 세팅 | JDK·Git·IntelliJ부터 Spring Boot까지

이번 글에서는 Java 버전이 맞지 않을 때 내가 확인하는 위치를 정리해본다.


1. 먼저 Windows에서 실제 Java 버전 확인

가장 먼저 확인할 곳은 터미널이다.

java -version

 

컴파일러 버전도 같이 확인할 수 있다.

javac -version

 

예를 들어 내가 이번에 구성한 환경처럼 JDK 17을 사용한다면 두 명령어에서 원하는 버전이 정상적으로 잡히는지 먼저 확인한다.

그런데 여기서 중요한 점이 있다.

 

이 결과는 현재 터미널에서 실행되는 Java가 무엇인지를 보여주는 것이지, IntelliJ 프로젝트와 Gradle이 무조건 같은 Java를 사용한다는 뜻은 아니다.

 

Java 버전 문제에서 헷갈리기 시작하는 지점이 여기였다.


2. JAVA_HOME도 확인

Windows에서는 JAVA_HOME도 확인해볼 수 있다.

CMD라면:

echo %JAVA_HOME%

 

PowerShell이라면:

$env:JAVA_HOME

 

실제로 어떤 Java 실행 파일이 잡히는지도 확인할 수 있다.

 

CMD:

where java

 

PowerShell:

Get-Command java

 

JDK를 여러 버전 설치한 적이 있다면 특히 확인할 가치가 있다.

예를 들어 Java 17과 Java 21이 동시에 설치되어 있는데 PATH에는 다른 버전이 먼저 잡혀 있을 수도 있다.

그래서 단순히

JDK를 설치했다.

 

에서 끝내기보다는

현재 터미널이 어떤 Java를 보고 있는가

 

까지 확인하는 편이 안전하다.


3. IntelliJ의 Project SDK 확인

다음은 IntelliJ다.

보통 다음 위치에서 확인할 수 있다.

File
→ Project Structure
→ Project
→ SDK

 

여기서 프로젝트가 사용하는 JDK를 확인한다.

예를 들어 프로젝트가 Java 17 기준이라면 Project SDK 역시 의도한 JDK를 바라보고 있는지 확인한다.

 

내가 새 노트북을 세팅하면서 다시 확인했던 것도 이 부분이었다.

 

Windows에서는 Java 17이 정상적으로 잡혀 있어도 IntelliJ 프로젝트 설정이 다른 JDK를 선택하고 있을 수 있기 때문이다.

즉,

java -version = 17

 

이라고 나온다고 해서

IntelliJ Project SDK = 17

 

이라고 자동으로 생각하면 안 된다.


4. 놓치기 쉬운 Gradle JVM

여기서 하나를 더 봐야 한다.

Gradle 프로젝트라면 Gradle JVM이다.

IntelliJ에서는 보통 다음 위치에서 확인할 수 있다.

Settings
→ Build, Execution, Deployment
→ Build Tools
→ Gradle
→ Gradle JVM

 

처음에는 Project SDK만 맞으면 되는 것처럼 느껴질 수 있다.

하지만 둘은 완전히 같은 설정이 아니다.

대략 이렇게 생각하면 이해하기 쉽다.

Project SDK
→ IntelliJ 프로젝트가 기준으로 사용하는 JDK

Gradle JVM
→ Gradle을 실행할 때 사용하는 JVM

 

그래서 이런 상황도 가능하다.

Windows java -version : 17

Project SDK : 17

Gradle JVM : 11

 

겉으로 보면 Java 17 프로젝트인데 Gradle 빌드 과정에서는 다른 Java를 사용하게 된다.

 

Java 버전 문제를 찾을 때 Project SDK만 보고 끝내면 안 되는 이유다.


5. Gradle에서 실제로 어떤 JVM을 사용하는지도 확인

터미널에서 Gradle 정보를 직접 확인하는 것도 좋다.

Windows의 Gradle Wrapper를 사용한다면:

gradlew.bat --version

 

프로젝트에 따라 PowerShell에서는:

.\gradlew.bat --version

 

출력 내용을 보면 Gradle 버전과 함께 JVM 정보를 확인할 수 있다.

이렇게 확인하면

IntelliJ 설정에서는 Java 17로 보이는데 왜 빌드에서는 이상하지?

 

같은 상황에서 범위를 조금 더 좁힐 수 있다.


6. build.gradle의 Java 설정도 확인

프로젝트 자체에서 Java 버전을 지정하고 있을 수도 있다.

Gradle에서는 Java Toolchain을 사용하는 방법이 있다.

예를 들어 Java 17이라면:

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(17)
    }
}

 

프로젝트에서 요구하는 Java 버전을 명시해두면 개발환경이 달라져도 어떤 버전을 사용해야 하는지 더 분명해진다.

기존 프로젝트에서는 다음처럼 설정되어 있을 수도 있다.

sourceCompatibility = '17'

 

중요한 건 특정 설정 방식 하나를 외우는 게 아니라,

 

프로젝트 자체에서 요구하는 Java 버전이 있는지도 확인해야 한다는 것이다.


7. Java 버전 오류가 나오면 어디부터 볼까

이번 새 노트북 세팅에서는 아래 오류들을 직접 겪은 것은 아니다.

다만 Java와 IntelliJ 환경을 다시 확인하면서, 이런 오류가 생겼을 때 어디부터 확인해야 하는지가 훨씬 명확해졌다.

상황먼저 확인할 곳
java -version과 IntelliJ 버전이 다름 Project SDK, JAVA_HOME, PATH
Gradle 빌드에서 Java 버전 오류 발생 Gradle JVM, gradlew --version
invalid source release 계열 오류 Project SDK, Gradle JVM, 프로젝트 Java 설정
높은 Java 버전이 필요하다는 메시지 Gradle JVM과 실제 실행 JVM
기존 PC에서는 되는데 새 PC에서 빌드 실패 JDK, Gradle JVM, 환경변수, 프로젝트 설정

오류 메시지만 검색하다 보면 해결법 하나만 복사하게 되기 쉽다.

하지만 Java 버전 문제에서는 먼저 현재 어떤 계층에서 어떤 Java를 사용하고 있는지 보는 편이 원인을 찾기 쉽다.


Java 버전 문제에서 헷갈리는 이유

정리하면서 내가 가장 중요하다고 느낀 건 이거였다.

Java를 한 곳에서만 설정한다고 생각하면 헷갈리기 쉽다.

실제로는 최소한 이런 것들이 있다.

Windows에서 실행되는 Java
        ↓
JAVA_HOME / PATH

IntelliJ
        ↓
Project SDK

Gradle
        ↓
Gradle JVM

프로젝트
        ↓
build.gradle / toolchain

 

서로 관련은 있지만 모두 같은 설정은 아니다.

예전 컴퓨터에서는 이미 맞춰져 있어서 평소에는 거의 볼 일이 없었다.

새 노트북에서 다시 세팅하니까 그동안 당연하게 사용했던 환경 뒤에 여러 설정이 있다는 게 다시 보였다.


내가 새 노트북에서 확인한 순서

이번에는 복잡하게 시작하지 않았다.

내가 확인한 순서는 이랬다.

JDK 설치
↓
java -version 확인
↓
IntelliJ 설치
↓
Project SDK 확인
↓
Gradle 설정 확인
↓
기존 프로젝트 실행으로 최종 확인

 

앞으로 기존 Spring Boot 프로젝트를 새 노트북에서 실제로 실행하면서 문제가 생긴다면 여기서부터 하나씩 범위를 좁혀볼 생각이다.

개발환경 세팅은 결국 프로그램을 설치하는 것보다,

 

내 프로젝트가 새로운 환경에서도 다시 동작하는지 확인하는 과정에 더 가까운 것 같다.


관련 글

Windows 새 노트북 개발환경 세팅 | JDK·Git·IntelliJ부터 Spring Boot까지