IT story

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

hot-time 2020. 6. 24. 07:27
반응형

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


를 포함하여 모든 프로젝트 설정에서 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옵션을 사용해야 하는 다른 장소가 있습니까?


이 중 아무것도 도움이되지 않으면 (내 경우) 다음과 같이 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


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

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

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


[IntelliJ IDEA 2016.2의 경우]

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

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

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

모듈 별 바이트 코드 버전


또는 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>

아래와 같이 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로 되돌 렸습니다.

However, adding below lines to root(project level) pom.xml worked me to resolve above issue: (both of the options worked for me)

Option 1:

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

Option 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>

File->Project structure->Project Settings->Project->Project Language level

File->Project structure->Project Settings->Modules->Language level

Change level using drop down


In your command line(Unix terminal) Go to your project root folder, and do this

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

This will change the language level property in all your project .iml files from java 1.5 to java 1.8.


First, you need to change the "project bytecode version" under File > Settings, Compiler > Java Compiler

Second, do a full rebuild.


I have same problem but with different situation. I can compile without any issue with maven in command line (mvn clean install), but in Intellij I always got "java: diamond operator is not supported in -source 1.5" compile error despite I have set the maven-compiler-plugin with java 1.8 in the pom.xml.

It turned out I have remote repository setting in my maven's settings.xml which the project depends on, but Intellij uses his own maven which doesn't have same setting with my local maven.

So my solution was changing the Intellij's maven setting (Settings -> Build, execution, Deployment -> Maven -> Maven home directory) to use the local maven.


In IntelliJ Community Edition 2019.02, Changing the following settings worked for me

  1. Update File->Project structure->Project Settings->Project->Project Language level to Java 11 (update to the java version that you wish to use in your project) using drop down.

  2. Update File->Project structure->Project Settings->Modules->Language level

  3. Update File->Settings->Build,Execution,Deployment -> Compiler -> Java Compiler-> Project ByteCode Version to java 11.

  4. Update Target version for all the entries under File->Settings->Build,Execution,Deployment -> Compiler -> Java Compiler-> Per module Byte Code Version.


I had the following property working for me in IntelliJ 2017

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

One more thing that could cause this is having incorrect version of the <parent> project.

In my case it was pointing to a non-existing project and for some reason IntelliJ downgraded version in settings to 1.5 and later when I fixed it, it was still interpreting target code version as 5 (despite setting it to 11).

참고 : https://stackoverflow.com/questions/21006136/intellij-idea-13-uses-java-1-5-despite-setting-to-1-7

반응형