강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

yoon6669님의 프로필 이미지
yoon6669

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

프로젝트 생성

버그인가요?

작성

·

303

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]


버그인지 궁금합니다..영상보고 차근차근 따라하다가 해결아닌 해결을 했는데 이게 정상적인건지 궁금합니다.

스크린샷 2025-02-17 220835.png.webp스크린샷 2025-02-15 205517.png.webp스크린샷 2025-02-15 205532.png.webp

처음에 첫번째 사진과 같은 스프링부트 프로젝트를 설정하고 build.gradle을 오픈하니 2,3번째 사진과 같은 에러가 발생했습니다.

 

해결전 설정은 아래와 같았습니다. 이전에 이걸로 질문글 올렸는데 java 버전을 17버전으로 설치해보라고 하셔서

jdk 17버전으로 설치했습니다. 설치후

스크린샷 2025-02-17 221742.png.webp

Project Structure에서 sdk를 변경해주었습니다.

그리고 build.gradle 파일에서 다음과 같이

스크린샷 2025-02-17 221514.png.webp

스크린샷 2025-02-17 221524.png.webp

 

languageVersion = JavaLanguageVersion.of(21)

languageVersion = JavaLanguageVersion.of(17)

로 변경까지 해준 후에야 gradle 파일을 리로드하니까 되더라구요.

 

그런데 여기서 이제 궁금한것은

스크린샷 2025-02-17 221850.png.webp

다시 설정을 이렇게 바꾼후에 build.gradle 파일을 리로드해도 되더라구요?

 

심지어 아래 사진처럼

스크린샷 2025-02-17 222043.png.webp

Setting -> Build -> BuildTools -> Gradle에 있는

Gradle JVM이 지금 JAVA_HOME으로 되어있는데
jdk 22버전으로 되어있습니다.

또한 JAVA_HOME 경로또한 아래와 같습니다.

스크린샷 2025-02-15 205745.png.webp

보시다시피 jdk 22버전 경로가 저장되어있죠.

 

그러니까 전부 jdk 22버전으로 되어있는데 jdk 17버전 설치

후 build.gradle에 있는

languageVersion = JavaLanguageVersion.of(17)

이것만 17버전으로 바뀌었을뿐인데 정상적으로 로드가 되는건가요?

JAVA_HOME같은 경로도 17버전 폴더로 모두 변경해야 동작할줄 알았는데요..

답변 2

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. yoon6669님

IntelliJ 내부에서 빌드와 컴파일을 위해 사용하는 자바는 JAVA_HOME에 설정된 자바와는 무관합니다 🙂

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. yoon6669님.

현재 질문을 주신 내용은 Java 버전을 설정하는 과정에서 발생한 혼란과 그에 따른 Gradle의 동작 여부에 관련된 사항입니다. 먼저 요약하자면, Gradle에서 build.gradle 파일 내에 설정된 Java 버전이 Java 코드를 컴파일할 때 우선적으로 사용됩니다.

주요 포인트와 설명:

  1. Gradle의 Toolchain 기능 사용:

    • build.gradle 파일에서 toolchain 설정을 통해 Java 17 버전으로 지정했기 때문에, 컴파일 시 해당 버전을 사용하게 됩니다. 이는 Gradle이 특정 Java 버전을 명시적으로 사용하도록 지시하는 기능으로, 시스템의 JAVA_HOME 설정과는 독립적으로 작동할 수 있습니다.
    • 따라서, 시스템 JAVA_HOME은 JDK 22 버전을 가리키고 있더라도, 프로젝트 내에서 toolchain을 통해 명시한 JDK 17을 사용할 수 있습니다.
  2. IntelliJ 및 Gradle 세팅:

    • IntelliJ의 프로젝트 설정 혹은 Gradle의 실행 시점 JVM이 JDK 22일지라도, 이는 프로젝트 빌드와 별개로 설정될 수 있습니다. 즉, 빌드 및 실행 시의 JVM 설정과, 컴파일 시에 사용하는 JDK 설정이 분리되어 있을 수 있습니다.
  3. 정상 동작 여부:

    • 프로젝트가 빌드되고 실행된다면, 현재 환경 설정은 정상적으로 작동하고 있는 것입니다. 그러나 이는 설정의 최적화와 구성의 명확성을 위해 이해하고 조정하는 것이 좋습니다.

추가 확인할 사항:

  • JAVA_HOME 및 경로 설정이 시스템 전역 설정 및 다른 프로젝트에서의 호환성에 영향을 미칠 수 있으므로, 일관되게 관리하는 것이 좋습니다.
  • 장기적인 안정성을 위해 Gradle, IntelliJ 및 시스템의 Java 환경 설정을 통일하는 것이 좋습니다.

유사한 상황이나 설정에 관한 추가 답변들은 다음과 같은 게시글에서도 참고하실 수 있습니다:
- 프로젝트 생성 강의 관련 질문드립니다~
- gradle 질문입니다

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

yoon6669님의 프로필 이미지
yoon6669

작성한 질문수

질문하기