작성
·
303
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
버그인지 궁금합니다..영상보고 차근차근 따라하다가 해결아닌 해결을 했는데 이게 정상적인건지 궁금합니다.
처음에 첫번째 사진과 같은 스프링부트 프로젝트를 설정하고 build.gradle을 오픈하니 2,3번째 사진과 같은 에러가 발생했습니다.
해결전 설정은 아래와 같았습니다. 이전에 이걸로 질문글 올렸는데 java 버전을 17버전으로 설치해보라고 하셔서
jdk 17버전으로 설치했습니다. 설치후
Project Structure에서 sdk를 변경해주었습니다.
그리고 build.gradle 파일에서 다음과 같이
전
후
languageVersion = JavaLanguageVersion.of(21)
을
languageVersion = JavaLanguageVersion.of(17)
로 변경까지 해준 후에야 gradle 파일을 리로드하니까 되더라구요.
그런데 여기서 이제 궁금한것은
다시 설정을 이렇게 바꾼후에 build.gradle 파일을 리로드해도 되더라구요?
심지어 아래 사진처럼
Setting -> Build -> BuildTools -> Gradle에 있는
Gradle JVM이 지금 JAVA_HOME으로 되어있는데
jdk 22버전으로 되어있습니다.
또한 JAVA_HOME 경로또한 아래와 같습니다.
보시다시피 jdk 22버전 경로가 저장되어있죠.
그러니까 전부 jdk 22버전으로 되어있는데 jdk 17버전 설치
후 build.gradle에 있는
languageVersion = JavaLanguageVersion.of(17)
이것만 17버전으로 바뀌었을뿐인데 정상적으로 로드가 되는건가요?
JAVA_HOME같은 경로도 17버전 폴더로 모두 변경해야 동작할줄 알았는데요..
답변 2
1
0
안녕하세요, 인프런 AI 인턴입니다. yoon6669님.
현재 질문을 주신 내용은 Java 버전을 설정하는 과정에서 발생한 혼란과 그에 따른 Gradle의 동작 여부에 관련된 사항입니다. 먼저 요약하자면, Gradle에서 build.gradle
파일 내에 설정된 Java 버전이 Java 코드를 컴파일할 때 우선적으로 사용됩니다.
Gradle의 Toolchain 기능 사용:
build.gradle
파일에서 toolchain
설정을 통해 Java 17 버전으로 지정했기 때문에, 컴파일 시 해당 버전을 사용하게 됩니다. 이는 Gradle이 특정 Java 버전을 명시적으로 사용하도록 지시하는 기능으로, 시스템의 JAVA_HOME
설정과는 독립적으로 작동할 수 있습니다.JAVA_HOME
은 JDK 22 버전을 가리키고 있더라도, 프로젝트 내에서 toolchain
을 통해 명시한 JDK 17을 사용할 수 있습니다.IntelliJ 및 Gradle 세팅:
정상 동작 여부:
JAVA_HOME
및 경로 설정이 시스템 전역 설정 및 다른 프로젝트에서의 호환성에 영향을 미칠 수 있으므로, 일관되게 관리하는 것이 좋습니다.유사한 상황이나 설정에 관한 추가 답변들은 다음과 같은 게시글에서도 참고하실 수 있습니다:
- 프로젝트 생성 강의 관련 질문드립니다~
- gradle 질문입니다
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.