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 parameters에 Java 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.