오류 : java : javacTask : 소스 릴리스 8에는 대상 릴리스 1.8이 필요합니다.


889

IntelliJ IDE를 사용하면 프로젝트를 컴파일 할 수 없습니다. 아래 설정 스크린 샷 :

사용 된 JDK :

http://gyazo.com/b6e32119af7b04090d890cad04db6373

프로젝트 SDK 및 언어 수준 :

http://gyazo.com/55a5fc9f7f2bb721a04780ce9d74eeab

언어 수준 :

http://gyazo.com/143bffad63fd89cafc231298729df2fc

아무도 아이디어가 있습니까?


1
"순수 Intellij"의 오류처럼 보이지 않습니다. 개미 빌드 스크립트 나 다른 것을 사용하지 않습니까?
fge


답변:


1911
  1. 파일> 설정> 빌드, 실행, 배포> 컴파일러> Java 컴파일러
  2. 대상 바이트 코드 버전 을 작업중인 모듈의 1.8 로 변경하십시오 .

Maven을 사용하는 경우

pom.xml최상위 레벨 project노드 아래에 컴파일러 플러그인을 추가하십시오 .

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

(의견에서 호이스트.)

참고 : 프로젝트를 다시 가져 오는 것이 마음에 들지 않으면 실제로해야 할 유일한 일은 pom을 변경하고 프로젝트를 다시 가져 오는 것입니다 .IntelliJ는 올바른 설정을 선택하므로 수동으로 변경할 필요가 없습니다.


IntelliJ 14 Ultimate에서 작동합니다.
DtechNet

이전 IDEA 버전에서는 설정-> 컴파일러-> Java 컴파일러-> 모듈 당 바이트 코드 버전
Jonik

88
Mac을 사용하는 경우 Intellij IDEA> 환경 설정 ...> 빌드, 실행, 배포> Java 컴파일러
JP Armstrong

4
2016.2 이전의 Intellij의 경우 확인할 곳이 하나 더 Project Structure -> Project Settings -> Modules -> Denpendencies -> Module SDK있습니다.
Bruce Sun

1
레벨이 두 개 이상인 POM 계층이 있고 컴파일러 플러그인이 상위 POM에 정의되어 있으면 IntelliJ가 가장 깊은 레벨에서이를 인식하지 못할 수 있습니다. 다른 모듈의 경우 동일한 상위 POM을 확장하더라도 그렇게하지 않기 때문에 그렇지 않을 수도 있습니다.
Dormouse

202

설정으로 이동하여 Java 컴파일러에서 다음을 설정해야합니다. 여기에 이미지 설명을 입력하십시오

또한 프로젝트 설정을 확인하십시오


116

이것은 컴파일러 플러그인이 올바르게 구성되지 않은 경우 Maven이 생성하는 일종의 오류처럼 보입니다. 다음은 Java 8 컴파일러 구성의 예입니다.

<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<!-- ... -->

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

<!-- ... -->

</project>

10
자신과 같은 다른 메이븐 초보자의 경우,이 아래에 있어야한다 project, build다음 plugins.
대런 헤일

4
또한 경우 <source>1.8</source><target>1.8</target>구성되고, 상기 에러가 발생할 수있다.
BuZZ-dEE

1
이것은 나를 위해 일했습니다. 감사합니다! 버전 태그가 해결되지 않았으므로 (내 Maven 버전과 일치하도록 변경했습니다) 주석 처리했습니다. 이 스레드에 따라 Maven이 올바른 최신 버전을 자동으로 가져와야한다고 생각합니다. stackoverflow.com/questions/17239394/… .
보리스

84

내가 찾은 가장 빠른 방법 :

  • 누릅니다 : CTRL+ SHIFT+ A(Mac + SHIFT+ A)
  • 유형: java compiler
  • 프레스: ENTER

설정 창에서 대상 바이트 코드를 1.8로 설정하십시오.

(또는 java9의 경우 9 )


3
이것은 절대적으로 나를 위해 일했습니다 (감사합니다!) 그러나 이것이 왜 pom.xml, 모듈 설정 등의 내용과 다른지 이해하지 못합니다.
Adam Lehenbauer

1
⌘를 눌러 환경 설정을하십시오.
X. Wang

31

이 문제를 해결하는 방법에는 두 가지가 있습니다.

  1. 설정 (File -> Settings -> Build, Execution, Deployment -> Java Compiler): 여기에 이미지 설명을 입력하십시오
  2. 에 빌드 섹션을 추가하십시오 pom.xml. 여기에 이미지 설명을 입력하십시오

18

Maven에 관한 많은 답변이 옳지 만 플러그인을 직접 구성 할 필요는 없습니다.

Apache Maven Compiler Plugin 의 wiki 페이지 에서 설명한 것처럼 플러그인에서 사용하는 2 가지 속성을 설정할 수 있습니다.

<project>
  [...]
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  [...]
</project>

1
@ Marvin Richter 솔루션을 시도했지만 IntelliJ와 함께 작동하지 않습니다. 순수한 maven 빌드 (명령 줄)에서는 정확하지만 IntelliJ는 이러한 속성을 무시합니다. 다른 솔루션에서 언급했듯이 플러그인을 구성해야했습니다.
베누아

1
다른 솔루션이 효과가 있었기 때문에 아닙니다. 이제 프로젝트를 마이그레이션하기 위해 마이그레이션했습니다.
Benoit

4
pom.xml-> Maven-> Reimport를 마우스 오른쪽 버튼으로 클릭하십시오. Maven 사용자에게 허용되는 답변이어야합니다.
ptkvsk

실제로 org.apache.maven.plugins:maven-compiler-pluginpom 또는 gradle 파일에 플러그인이 필요합니다 . 문서에서 pom 속성에 해당 속성을 설정하면 충분합니다. 기본적으로 플러그인의 기본값을 설정하기 때문에 충분합니다 (예 : <source> $ { maven.compiler.source} </ source>
EliuX

이것이 정답입니다. Mac OS 10.13.5의 IntelliJ 2018.2에서 나를 위해 일했습니다.
user674669

13

프로젝트 구조 -> 모듈 로 이동하여 문제가있는 모듈을 찾은 다음 종속성 탭을 클릭하고로 변경 Module SDK하십시오 Project SDK.


9

대상 컴파일 버전을 1.8로 변경하여 문제를 해결했습니다. 그 안에 :

파일 >> 설정 >> 빌드, 실행, 배포 >> 컴파일러 >> Java 컴파일러


1
고마워요 Intellij Idea를 사용하여 프로젝트 바이트 코드 버전 또는 모듈 당 바이트 코드 버전을 지정해야합니다. maven-compiler-plugin에 대해 pom.xml에서 설정하면 문제가 해결되지 않았습니다.
WebComer


5

내 경우 에는 프로젝트의 .iml 파일 (프로젝트 루트 폴더에 있으며 프로젝트 이름과 이름이 동일 함)을 변경하여 줄 <orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" />을 변경 하여이 문제를 해결했습니다.<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />

다른 답변과 같이 모든 것이 구성되어 있지만 어떤 이유로 Idea가 .iml 파일을 잘못 업데이트했습니다.


2
모든 메뉴를 구성한 경우에도 Intellij가 구성 파일을 업데이트하지 않는 것 같습니다. 캐시를 무효화하고 다시 시작하십시오 (구성 파일을 편집 한 후). 이상한.
jah

1
정말 고마워. 마지막으로 위에서 지정한 다른 모든 솔루션을 시도하고 실패한 후에 작동했습니다.
Nitin Bansal

4

POM 파일을 수정하여 수정했습니다. 가장 높은 투표 응답 아래의 마지막 주석을 확인하십시오.

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <encoding>UTF-8</encoding>
        </configuration>
</plugin>

소스는 대상과 일치해야합니다.



3

Android-studio 1.3으로 작업하는 경우 다음 단계를 수행하십시오.

파일로 이동 - 프로젝트 구조

아래에 모듈 - 응용 프로그램 - 등록 정보 탭을 선택 소스 호환성 - 1.8

대상 호환성 - 1.8 .

그리고 당신은 갈 수 있습니다.


3

Gradle 앱 레벨 파일 >> compileOptions 에서이 두 줄을 추가하십시오.

android {
  compileOptions {
    ...
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    ...
   }
}

고마워요 귀하의 답변이 효과가
Solution Spirit

1

compiler.xml 파일에는 다음이 있습니다.

<bytecodeTargetLevel>
  <module name="your_project_name_main" target="1.8" />
  <module name="your_project_name_test" target="1.8" />
</bytecodeTargetLevel>

목표 값을 이전 값에서 새 값으로 변경할 수 있습니다. 1.5에서 1.8로 변경해야했습니다.


1

나는 방금 같은 문제로 고군분투했다. 나를 위해 일한 유일한 것은 내장 mvn (3.3.9)을 사용하지 않고 외부 다운로드 버전 (3.5.0)을 가리 키는 것입니다. 마침내 프로젝트가 열리고 모든 것이 좋았습니다.


1

이 문제는 모듈이 주석 프로세서로 구성되고 다른 모듈이 구성되지 않은 경우 발생합니다. 모든 모듈에 대해 동일한 구성을 순환 종속성으로 설정하십시오.


0

나에게 문제는 Maven이 적절한 구성을 찾을 수 없다는 것입니다.이 항목은 부모 pom에 지정 되었기 때문입니다.

파일-> 설정-> 빌드, 실행, 배포-> Maven-> 사용자 설정 파일을 변경하여 적절한 저장소가있는 사용자 정의 설정을 가리키면 달리 숨기는 문제가 수정되었습니다.

이전에 콘솔에서 제목과 "java.lang.NullPointerException"오류가 발생한 경우 도움말-> 탐색기에서 로그 표시-> 로그 파일 클릭을 통해 문제점에 대해 알았습니다.


0

문제의 해결책은 매우 간단합니다 . 아이디어 프로젝트에서 .idea / compiler.xml 파일 을 열어야 합니다.

적절한 대상 버전을 작성해야합니다


0

Maven을 사용하는 Intellij 를 사용 하면 Intellij가 프로젝트를 자동으로 가져 왔는지 확인해야합니다. 편집기 오른쪽의 Maven 탭을 클릭하여 확인할 수 있습니다.

여기에 이미지 설명을 입력하십시오

프로젝트가 여기 pom.xml에 없으면를 클릭 하여 파일 을 추가하십시오 +.

분명히 프로젝트에는 관련성이 있어야합니다 <build/>.

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

0

다른 답변이 작동하지 않으면 모듈 SDK를 확인하십시오 .

프로젝트 SDK를 1.8로, Javac 컴파일러를 1.8로 등을 업데이트 한 후에이 오류가 표시되었습니다. 나에게 문제가 된 설정은 "모듈 SDK"였습니다.

로 이동 (리눅스) File > Project Structure...창이 열리면 다음, 선택 Modules에 따라 Project Settings. 목록에서 해당 모듈을 선택한 다음 Dependencies탭을 선택하고 Module SDK올바르게 설정되어 있는지 확인하십시오 .


0

위의 모든 사항을 확인했지만 오류가 계속 발생합니다.

그러나 모든 maven 프로젝트를 다시 가져 오기 (Maven 프로젝트 패널의 다시로드 버튼)는 제 경우에 작동합니다.


0

모듈에 대한 의존성을 설정하는 것을 잊지 마십시오 : 여기에 이미지 설명을 입력하십시오

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