Please enable JavaScript to view the comments powered by Disqus.자바 버젼을 바꾼뒤 could not target platform Error msg 대응
Search

자바 버젼을 바꾼뒤 could not target platform Error msg 대응

태그
Java
IntelliJ
공개여부
작성일자
2021/01/27
이번 프로젝트에서 처음으로 Java11을 사용하기로 했다. 팀에서 계속 Java8 버젼만 사용하다가 새로운 프로젝트를 만들려고 보니 Java11, Java15 버젼도 있는데 8 버젼만 사용하는게 좀 이상했다. Java 11로 넘어오면서 달라진 차이점은 조만간 정리할 예정이다.
일단 자바 버젼을 변경하고 IntelliJ 를 실행하니
Execution failed for task ':compileJava'. > Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'. * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Plain Text
복사
이러한 에러가 발생했다. Java SE 11 이 target 인데 JDK8 버젼으로 수행할 수 없다. 당연한 이야기지
IntelliJ 에서 한군데 수정하니 문제 없이 실행된다.
File → Settings → Build, Execution, Deployment → Build Tools → Gradle 에서
Gradle JVM 이 Java8 로 되어있다. IntelliJ 문서에 보면 이 필드의 기본값은 프로젝트의 JDK 를 따라간다고 되어 있는데 왜 Java8 로 되어있는건지...
이 이외에도 자바 버젼을 선택하는 부분이 있다.
File → Settings → Build, Execution, Deployment → Compiler → Java Compiler
생성되는 자바 bytecode 의 버젼을 명시한다.
최소한 이 버젼의 JVM이 적용되어야 한다 라는 의미라서 자바 버젼을 왔다갔다 한다면 8로 해도 되지 않을까 싶다
어떠한 모듈에서 특정한 java 버젼을 사용하고 싶다면 Per-module 에 추가할 수 있다.
File → Project Structure → Project → Project SDK
project 의 language level 을 결정하는 설정이다.
.idea, .xml 와 같은 project 파일에 함께 명시된다.
프로젝트에서 사용하는 SDK 버젼이다.
프로젝트 컴파일러 출력 경로 혹은 라이브러리가 포함되어 있다.
여기서 설정하면 알아서 Gradle 도 의존성을 갖고 버젼이 변경되면 좋을텐데 왜 그렇게 안되있는지 모르겠다.