[JAVA] IntelliJ IDEA - Project language level 설정의 의미

2021. 4. 20. 12:28 IDE Tool/IntelliJ IDEA

Project Structure

IntelliJ IDEA의 Project Structure 창에서 Project SDK, Project language level 설정을 찾을 수 있다.

 

※ 참고 - Project Structure
상단 메뉴의 File - Project Structure 클릭 혹은 단축키 Ctrl + Alt + Shift + S (윈도우 기준)

 

Project language level은 실제로 무엇을 설정하는가?

Project language level은 IntelliJ의 editor(편집기)와 java compiler가 사용할 language level을 설정한다. 예를 들어, JDK 1.7을 사용하고 있지만 java 코드가 JDK 1.6과 호환되도록 하려면 language level 실제 JDK 지원(JDK 1.7의 경우 7.0)보다 낮은 6.0으로 설정하면 된다.

C:\>javac -help
Usage: javac <options> <source files>
where possible options include:
  -source <release>
        Provide source compatibility with specified release
  -target <release>            
        Generate class files for specific VM version

 

Java 컴파일러 명령인 javac의 옵션을 보면 -source 및 -target 옵션을 통해 Java의 대체 버전을 기준으로 컴파일할 수 있음을 알 수 있다. 이를 통해 Project language level은 IntelliJ에게 특정 Java 언어 버전에서 제공된 Java SDK를 사용하도록 지시한다.
그래서 Java 7이 설치되어 있어도 language level을 6.0으로 설정할 수 있고, IntelliJ는 Java 7 대신 Java 6을 기준으로 코드를 확인하고, suggestion을 제공하며, 컴파일한다.

 

Project Structure - Project language level

Project language level을 눌러 목록을 보면 다양한 종류의 language level로 설정할 수 있음을 알 수 있다. SDK default는 사용하는 JDK와 동일한 language level을 사용하도록 한다.

 

모든 새로운 프로젝트의 Project lanuage level 설정하기

IntelliJ IDEA 메뉴

File - Other Settings - Structure for New Projects... 에서 모든 새로운 프로젝트의 language level을 설정할 수 있다.

 

Project Structure for New Projects

그러면 Project Structure for New Projects 창이 열린다. 여기서 Project language level을 원하는 옵션으로 설정하면 된다. 예전 버전에서는 설정을 해도 language level이 6.0으로 고정되는 버그가 있었다고 하는데, 나는 2019.3(Community edition)을 사용중이며 해당 버그가 발생하지 않는다.

 

출처 : atoz-develop.tistory.com/entry/JAVA-IntelliJ-IDEA-Project-language-level-%EC%84%A4%EC%A0%95%EC%9D%98-%EC%9D%98%EB%AF%B8?category=846755