IntelliJ IDEA 13은 1.7로 설정했지만 Java 1.5를 사용합니다.


147

를 포함하여 모든 프로젝트 설정에서 JDK 1.7을 지정 하더라도 다이아몬드 연산자를 사용하는 간단한 Java 7 코드를 컴파일하려고 할 때 File -> Project Structure -> Project :: Project SDK다음 오류가 발생 IntelliJ 13합니다.

java: diamond operator is not supported in -source 1.5
(use -source 7 or higher to enable diamond operator)

구성에 예상 -source 7옵션을 사용해야 하는 다른 장소가 있습니까?


8
시험해 보았습니다 :로 File -> Project Structure -> Project :: Project language level변경 Diamonds, ARM, multi-catch etc하시겠습니까?
Adam Shakhabov

39
예. 결과적으로 File-> Project Structure-> Modules :: Sources (Paths and Dependencies 옆에) 아래에 또 다른 옵션이 있으며 "Language level"옵션이 있으며 올바르게 설정해야합니다. 의견과 답변을 주셔서 감사합니다. :-)
PNS


33
업데이트해야 할 장소가 3 곳 있습니다. (1) 파일-> 설정 (바로 가기의 경우 Ctrl + Alt + s)을 선택한 다음 "빌드, 실행, 배포"> 컴파일러> Java 컴파일러를 선택하고 "대상 바이트 코드 버전"을 원하는 Java 버전으로 변경하십시오. (2와 3) 다른 위치는 파일> 프로젝트 구조 (Ctrl + Alt + Shift + S)> "프로젝트 설정"> "프로젝트"아래에 있으며 프로젝트 SDK를 해당 Java 버전을 가리 키도록 변경하고 프로젝트 언어 레벨을 올바른 버전. 이 코드 지원은 불행히도 새로운 프로젝트의 성가심을 유발하는 언어 수준 만 변경합니다.
8bitme

2
프로젝트에 200 개의 모듈이 있으면 하루 종일 모듈을 다시 클릭해야합니까?

답변:


114

이 중 아무것도 도움이되지 않으면 (내 경우) 다음과 같이 pom.xml에서 설정할 수 있습니다.

<properties>
  <maven.compiler.source>1.7</maven.compiler.source>
  <maven.compiler.target>1.7</maven.compiler.target>
</properties>

이 멋진 사람이 여기에 언급했듯이 : https : //.com/a/25888116/1643465


4
모든 팀 동료의 설정을 날려하지 않으려면 좋은 생각하지만, 공유 프로젝트에 하드 재정의를 범하지 않는다
quaintm

8
이것은 나를 위해 문제를 해결했습니다. 감사합니다! 어떻게 "팀원들의 설정을 날려 버릴 수 있습니까?" 프로젝트의 목표가 1.7이면 1.7입니다. 팀원마다 목표 환경이 다른 것은 아닙니다.
isapir

1
좋아, 내 프로젝트는 maven 프로젝트입니다.
huuthang

1
새로운 maven 프로젝트의 경우이 설정을 기본 maven 프로젝트에 추가 할 수 있습니다. 기본 설정 사용 | 편집자 | 파일 및 코드 템플릿 | 메이븐 | Maven Projects.xml <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> InteliJ 지원 포럼
pRmdk

이것은 나를 위해 일했다. 그러나 IntelliJ를 다시 시작했을 때만 프로젝트를 다시 빌드하려고 시도했지만 작동하지 않았습니다.
Metin Dagcilar

155

프로젝트 / 모듈 언어 레벨을 확인하십시오 (프로젝트 구조 | 프로젝트; 프로젝트 구조 | 모듈 | 모듈 이름 | 소스). 설정 | 컴파일러 | 자바 컴파일러 | 모듈 별 바이트 코드 버전.

또한 이것을 설정하십시오 :

파일-> 프로젝트 구조-> 모듈 :: 소스 (경로 및 종속성 옆) 및 "언어 레벨"옵션이 있으며 올바르게 설정해야합니다.


2
그리고 있는지 확인 Additional command line parametersJava Compiler설정 비어 있습니다.
NeplatnyUdaj

2
참고 : 세 번째 것은 (파일-> 프로젝트 구조-> 모듈 :: 소스) 나를 위해 해결 한 것입니다.
Peter

이 답변의 유용한 스크린 샷은 다음과 같습니다. stackoverflow.com/a/21747329/1146608
Patrick M

1
Maven을 사용하는 경우 pom을 수정해야합니다. stackoverflow.com/questions/27037657/…
Benj

11
언어 수준의 경우 +1 같은 # $ % ^ 일을 설정하고 다시 설정하고 다시 설정 해야 할이 너무 많지 않아야 합니다!
G. Ann-SonarSource 팀

52

[IntelliJ IDEA 2016.2의 경우]

Peter Gromov의 답변 중 일부를 최신 스크린 샷 으로 확장하고 싶습니다 . 구체적 으로이 특정 부분 :

설정 | 컴파일러 | 자바 컴파일러 | 모듈 별 바이트 코드 버전.

나는 적어도 2016.2에서 : 다른 커밋을 체크 아웃 git하면 1.5 로 재설정 한다고 생각합니다 .

모듈 별 바이트 코드 버전


5
나는 그것들을 정확한 숫자로 유지하는 것을 포기했다 (어떤 이유로 그들은 변한다-내가 할 때를 가정한다 git checkout). 이 목록에서 항목을 안전하게 삭제할 수 있다는 것을 알았습니다. 모듈은 "프로젝트 바이트 코드 버전"을 사용하도록 대체됩니다.
Birchlabs 2016 년

이 숫자는 예기치 않게 1.5로 되돌아갑니다. pom.xml 파일의 컴파일러 소스 및 대상 버전을 하드 코딩 만 일관성있게 작동합니다.
sheldonkreger 17 년

이 스크린 샷 상단 부근의 "프로젝트 바이트 코드 버전"설정과 강조 표시된 "대상 바이트 코드 버전"에 유의하십시오.
Basil Bourque

@Birchlabs 감사합니다. 이것이 정답이라고 생각합니다.
chrips

1
이 인 IntelliJ IDEA 2019.1, 나를 위해 문제를 해결하는 유일한 솔루션이었다
주앙 호샤 다 실바

19

또는 pom.xml에 추가하여 적절한 Java 버전으로 maven-compiler-plugin을 적용 할 수 있습니다.

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

이것은 프로젝트 삭제 후 .idea 폴더 및 .iml 파일을 삭제 한 후 프로젝트를 다시 열 때 다시 만들어졌습니다.
앤드류

1
아이디어에서 "Maven 새로 고침"버튼을 누르면 작동합니다.
OlgaMaciaszek

솔루션이 작동하려면 @OlgaMaciaszek 새로 고침이 필요했습니다. 감사!
payne

14

아래와 같이 Intellij IDEA를 변경하려고했습니다.

1.

File >> Settings >> Build, Execution, Deployment >> Compiler >> Java Compiler >> project bytecode version: 1.8 >> Per-module bytecode version: 1.8

2.

File >> Project Structure >> Project Settings >> Project >> SDK : 1.8, Project Language : 8 - Lambdas
File >> Project Structure >> Project Settings >> Modules >> abc : Language level: 8 - Lambdas

그러나 아무것도 효과가 없었습니다. 저장하자마자 버전을 Java 1.5로 되돌 렸습니다.

그러나 루트 (프로젝트 수준) pom.xml에 아래 줄을 추가하면 위의 문제를 해결하는 데 도움이되었습니다. (두 옵션 모두 저에게 효과적이었습니다)

옵션 1:

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

옵션 2 :

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

11

파일-> 프로젝트 구조-> 프로젝트 설정-> 프로젝트-> 프로젝트 언어 레벨

파일-> 프로젝트 구조-> 프로젝트 설정-> 모듈-> 언어 레벨

드롭 다운을 사용하여 레벨 변경


4

커맨드 라인 (Unix 터미널)에서 프로젝트 루트 폴더로 이동 하여이 작업을 수행하십시오

find . -type f -name '*.iml' -exec sed -i '' s/JDK_1_5/JDK_1_8/g {} +

모든 프로젝트 .iml 파일의 언어 수준 속성이 java 1.5에서 java 1.8로 변경됩니다.


아직 확실하지 않지만 compiler.xml프로젝트의 루트 (IntelliJ 2017.2)에서 JDK 버전을 교체해야 할 수도 있습니다 .sed 's/target="1.5"/target="1.8"/g' .idea/compiler.xml
Oleksandr Volynets

compiler.xml은 프로젝트에 따라 달라질 수 있습니다. 이 명령은 intellij에만 필요한 * .iml 파일 만 대상으로합니다. IDE와 독립적으로 maven pom.xml 또는 케이스 compiler.xml에서 언어 설정을 조정해야 할 수도 있습니다.
Saideep Sambaraju

1
@SaideepSambaraju compiler.xml은 내가 본 모든 빌드 가능한 아이디어 프로젝트에 있습니다. 내가 본 것에서이 파일은 설정-> 컴파일러 (linux) 환경 설정-> 컴파일러 (MacOS)의 모델입니다. Oleksandr가 말했듯이 UI를 사용하지 않고 직접 스크립트로 대상 버전을 변경하는 데 사용할 수 있습니다.
Sergey Sargsyan

@SergeySargsyan-방금 확인했는데 검색하여 찾을 수없는 .idea 폴더에 있습니다. 지적 해 주셔서 감사합니다.
Saideep Sambaraju

2

먼저, 아래의 "프로젝트 바이트 코드 버전"을 변경해야합니다 File > Settings.Compiler > Java Compiler

둘째, 전체 재구성을 수행하십시오.


2

나는 같은 문제가 있지만 상황이 다릅니다. 커맨드 라인 ( mvn clean install) 에서 maven으로 문제없이 컴파일 할 수 있지만 Intellij에서는 항상"java: diamond operator is not supported in -source 1.5" 에서는 pom.xml에서 java 1.8로 maven-compiler-plugin을 설정했지만 컴파일 오류가 발생합니다.

프로젝트가 의존하는 maven의 settings.xml에 원격 저장소 설정이 있지만 Intellij는 로컬 maven과 동일한 설정이없는 자체 maven을 사용합니다.

그래서 내 솔루션은 Intellij의 maven 설정 ( Settings -> Build, execution, Deployment -> Maven -> Maven home directory)을 로컬 maven을 사용하도록 변경했습니다 .


2

IntelliJ Community Edition 2019.02에서 다음 설정 변경이 저에게 효과적이었습니다.

  1. 드롭 다운을 사용하여 파일-> 프로젝트 구조-> 프로젝트 설정-> 프로젝트-> 프로젝트 언어 레벨을 Java 11 (프로젝트에서 사용하려는 Java 버전으로 업데이트)로 업데이트하십시오.

  2. 업데이트 파일-> 프로젝트 구조-> 프로젝트 설정-> 모듈-> 언어 레벨

  3. 파일-> 설정-> 빌드, 실행, 배포-> 컴파일러-> Java 컴파일러-> 프로젝트 바이트 코드 버전을 Java 11로 업데이트하십시오.

  4. 파일-> 설정-> 빌드, 실행, 배치-> 컴파일러-> Java 컴파일러-> 모듈 바이트 코드 버전 아래의 모든 항목에 대한 대상 버전을 업데이트하십시오.


0

IntelliJ 2017에서 다음 속성이 나를 위해 일했습니다.

  <properties>
        <java.version>1.8</java.version>       
  </properties>

이것은 스프링 부트와 같은 부모 프로젝트를 사용하는 경우에만 작동합니다.
wggn

0

이 발생할 수 있습니다 한가지 더 잘못된 데 version<parent>프로젝트.

필자의 경우 존재하지 않는 프로젝트를 가리키고 있었고 어떤 이유로 IntelliJ가 설정을 수정했을 때 버전이 1.5 이상으로 다운 그레이드되었지만 여전히 대상 코드 버전을 5로 해석했습니다 (11로 설정하더라도).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.