2013-07-18 4 views
48

Java 7 SDK 및 IntelliJ IDEA IDE를 사용하고 있습니다.IntelliJ IDEA의 프로젝트 언어 수준은 무엇입니까?

java version "1.7.0_11" 
Java(TM) SE Runtime Environment (build 1.7.0_11-b21) 
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode) 

아직 Java 7 기능을 사용할 수 없습니다. 몇 가지 검색 후 나는 7(Diamond, ARM, multicatch etc) 프로젝트 언어 수준을 설정 한 후 모든 기능을 사용할 수 있습니다. 이게 정확히 무엇입니까? 이것이 사용중인 JDK 기반의 구문과 어떤 관계가 있다면 level 8(Lambda, annotations etc)은 무엇입니까? 자바 8은 아직 공개되지 않았다. Java 8은 Wiki에 따르면 2014 년 3 월에 예상됩니다. 누군가이 언어 수준 개념을 설명하십시오.

답변

69

Language level 편집기의 코드 지원 기능이 지원해야하는 설정 세트. 예를 들어, JDK 1.7을 사용하고 있지만 코드가 JDK 1.6과 호환되도록하려면 언어 레벨을 실제 JDK 지원 (JDK 1.6의 경우 6.0)보다 낮게 설정하고 리팩토링/구문 만 제안하면됩니다. 1.6 이하에서 지원됩니다. 컴파일러에 따라, 새로운 구문 요소에 대한 지원을 제거하는 컴파일러 옵션을 제공 할 수도 있습니다.

Java 8 snapshots 중 하나를 사용하여 실험하려는 사람들은 8.0 (Java 8에 해당하는 것으로 추측됩니다)을 사용할 수 있습니다. Java 8이 출시되지 않았기 때문에 릴리스 8.0 이전의 언어 레벨 8.0이 변경 될 수 있습니다.

+0

이 설정은 편집기의 코드 지원이 IDE에 내장 된 기능을 지원해야하는지, 아니면 네트워크를 통해 업데이트로 가져 오는 기능을 설정합니까? –

+0

@AniketThakur IDE 자체와 함께 업데이트되는 것 같습니다. 최소한 IDE 업데이트와 관련없는 변경 사항은 발견하지 못했습니다. –

+0

ok gr8. 감사! –

3

일반 프로젝트 설정 탐색IntelliJ Wiki에있는 프로젝트 언어 수준은 IDE에서 제공하는 인텔리 센스에 영향을줍니다.

개발할 때 Java 코드를 컴파일 할 때 IntelliJ에서 사용하는 컴파일러의 동작을 결정합니다.

이 설정은 프로젝트에서 사용할 수있는 컴파일러의 모든 기능을 알려줍니다. 예 : 언어 레벨을 JDK 5로 설정하면 IntelliJ는 소스 코드 내에 존재하는 enum과 같은 키워드를 인식 할 수 있습니다.

3

options for the javac Java compiler command을 보면 -source-target 옵션을 사용하면 다른 버전의 Java에서 컴파일 할 수 있습니다. IntelliJ의 언어 레벨 설정이 어떤 옵션에 해당하는지 확신 할 수는 없지만 IntelliJ에 제공된 Java SDK (Project SDK 필드)를 지정한 Java 언어 버전 대신 제공되는 최신 버전 대신 IntelliJ에 사용하도록 지시합니다 SDK

Java 7이 설치된 동안 언어 레벨을 6.0으로 설정하면 IntelliJ가 Java 7 사양 대신 Java 6 사양에 맞게 코드를 컴파일합니다. 여기에는 입력 할 때 수행 된 모든 실시간 제안 및 코드 검사가 포함됩니다.

Java 8 옵션은 Java 8의 베타 빌드가 테스트에 사용 가능하다는 사실 때문에 가능합니다.

언어 수준을 JDK 버전보다 높은 것으로 설정하면 어떻게 될지 실험 해 본 적이 없습니다.

관련 문제