Erro: java: javacTask: o release de origem 8 requer o release de destino 1.8

889

O uso do IntelliJ IDE não pode compilar nenhum projeto. Capturas de tela das configurações abaixo:

JDK usado:

http://gyazo.com/b6e32119af7b04090d890cad04db6373

SDK do projeto e nível de idioma:

http://gyazo.com/55a5fc9f7f2bb721a04780ce9d74eeab

Nível de idioma:

http://gyazo.com/143bffad63fd89cafc231298729df2fc

Alguém tem alguma ideia?

Amador
fonte
1
Isso não parece um erro do "puro Intellij"; você não está usando um form buildcript ou algo assim?
fge

Respostas:

1913
  1. Arquivo> Configurações> Compilação, Execução, Implantação> Compilador> Java Compiler
  2. Altere a versão do bytecode de destino para 1.8 do módulo em que você está trabalhando.

Se você estiver usando o Maven

Adicione o plug-in do compilador ao nó de pom.xmlnível superior 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>

(Elevado dos comentários.)

Nota: Se você não se importa em reimportar seu projeto, a única coisa que você realmente precisa fazer é alterar o pom e reimportar o projeto. O IntelliJ selecionará as configurações corretas e você não precisará alterá-las manualmente.

Weslor
fonte
Funciona no IntelliJ 14 Ultimate.
DtechNet 16/08/2015
Em versões mais antigas idéia, tente: Configurações -> Compiler -> Java Compiler -> Per-módulo versão bytecode
Jonik
88
Se você estiver em um Mac, é sob IntelliJ IDEA> Preferências ...> Build, Execução, Implementação> Java Compiler
JP Armstrong
4
Para Intellij mais recente do que 2.016,2, há mais um lugar para verificação: Project Structure -> Project Settings -> Modules -> Denpendencies -> Module SDK.
Bruce Sun
1
Quando você tem uma hierarquia de POM com mais de dois níveis e seu plug-in de compilador é definido no POM pai, o IntelliJ pode não reconhecê-lo no nível mais profundo. Eu digo que não, porque para alguns outros módulos, mesmo quando eles estendem o mesmo POM pai.
Dormouse
202

Você precisa ir para Configurações e definir no compilador Java o seguinte: insira a descrição da imagem aqui

verifique também as configurações do projeto

Gregory Mazur
fonte
116

Parece o tipo de erro que o Maven gera quando o plug-in do compilador não está configurado corretamente. Aqui está um exemplo de uma configuração do compilador 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>
Steve Chaloner
fonte
10
Para outros novatos Maven como eu, isso deve estar sob project, builde depois plugins.
Darren Hale
4
Além disso, se <source>1.8</source>e <target>1.8</target>estiver configurado, o erro acima pode ocorrer.
BuZZ-dEE 26/08/15
1
Isso funcionou para mim, obrigado! A tag da versão não foi resolvida (eu a alterei para corresponder à minha versão do Maven), então comentei. Eu acredito que o Maven deve buscar automaticamente a versão mais recente correta nesse caso, com base neste segmento: stackoverflow.com/questions/17239394/… .
Boris
84

A maneira mais rápida que encontrei:

  • pressione: CTRL+ SHIFT+ A(para Mac + SHIFT+ A)
  • tipo: java compiler
  • pressione: ENTER

Na janela Configurações, defina o bytecode de destino como 1,8

(ou 9 para java9)

Snovelli
fonte
3
Este absolutamente funcionou para mim (graças!), Mas eu não entendo por que isso é diferente do que o que está no pom.xml, configurações do módulo, etc ...
Adam Lehenbauer
1
pressione ⌘ para obter preferência.
Wang Wang
31

Existem duas maneiras de resolver esse problema:

  1. Defina as configurações (File -> Settings -> Build, Execution, Deployment -> Java Compiler): insira a descrição da imagem aqui
  2. Adicione uma seção de construção ao seu pom.xml: insira a descrição da imagem aqui
Lord Nighton
fonte
18

Muitas respostas sobre o Maven estão corretas, mas você não precisa configurar o plugin diretamente.

Como descrito na página wiki do Apache Maven Compiler Plugin, você pode definir as 2 propriedades usadas pelo plug-in.

<project>
  [...]
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  [...]
</project>
Marvin Richter
fonte
1
@ Marvin Richter Tentei sua solução, mas ela não funciona com o IntelliJ - Meu palpite é que ele está correto na configuração pura do maven (linha de comando), mas o IntelliJ simplesmente ignora essas propriedades. Eu tive que configurar o plugin como mencionado em outras soluções.
Benoit
1
Não, não fiz, porque as outras soluções funcionaram. E agora eu migrei meu projeto para gradle.
Benoit
4
Funciona como um encanto depois que você clica com o botão direito do mouse em pom.xml -> Maven -> Reimport. Essa deve ser a resposta aceita pelos usuários do Maven.
ptkvsk
Você realmente precisa do plug-in org.apache.maven.plugins:maven-compiler-pluginno seu arquivo pom ou gradle, o que na documentação pretendia dizer é que ter essa propriedade definida nas propriedades pom será suficiente, basicamente porque eles definem os valores padrão do plug-in, por exemplo, <source> $ { maven.compiler.source} </source>
EliuX 19/17
Essa deve ser a resposta aceita. Trabalhei para mim no IntelliJ 2018.2 no mac os 10.13.5
user674669
13

Corrigi isso indo para Estrutura do projeto -> Módulos , localize o módulo em questão, clique na guia Dependências e mude Module SDKpara Project SDK.

Sam Barnum
fonte
9

Corrigi-o apenas alterando a versão de compilação do destino para 1,8. Está dentro:

Arquivo >> Configurações >> Compilação, Execução, Implantação >> Compilador >> Compilador Java

Vishal
fonte
1
Obrigado, Vishal. Temos que especificar a versão do bytecode do projeto, ou pelo menos a versão do bytecode do módulo com o Intellij Idea. Apenas configurá-lo no pom.xml para o maven-compiler-plugin não resolveu o problema para mim.
WebComer
6

Você precisa ir para /.idea/compiler.xmle mudar targetpara o jdknível necessário .

insira a descrição da imagem aqui

Muhammad Usman
fonte
5

No meu caso, corrigi esse problema abrindo o arquivo .iml do projeto (ele está localizado na pasta raiz do projeto e tem o mesmo nome do projeto) e alterando a linha<orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" /> para<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />

Eu tinha tudo configurado como nas outras respostas aqui, mas por alguma razão o Idea atualizou o arquivo .iml incorretamente.

Nuvem
fonte
2
Às vezes, parece que o Intellij não atualiza os arquivos de configuração, mesmo quando você configurou todos os menus. Invalidar caches e reiniciar (depois de editar os arquivos de configuração), fez o truque para mim. Estranho.
JAH
1
Muito obrigado. Finalmente, depois de tentar e falhar em todas as outras soluções especificadas acima, isso funcionou.
Nitin Bansal
4

Corrigi-o modificando meu arquivo POM. Observe o último comentário com a resposta mais votada.

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

A fonte deve corresponder ao destino.

user4884640
fonte
4

Acabei de reimportar o botão maven e o erro desapareceu.

insira a descrição da imagem aqui

Pham Hung
fonte
Obrigado. Essa dica chegou
Veilchen4ever
3

Se você estiver trabalhando com o Android-studio 1.3, siga as etapas abaixo -

Ir para Arquivo - Estrutura do Projeto

Nos módulos - app - guia Propriedades , escolha Compatibilidade de origem - 1.8 e

Compatibilidade do alvo - 1.8 .

E você está pronto para ir.

B.shruti
fonte
3

No arquivo no nível do aplicativo Gradle >> compileOptions, adicione estas duas linhas

android {
  compileOptions {
    ...
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    ...
   }
}
Badr
fonte
Obrigado cara. Sua resposta funcionou
Solution Spirit
1

No arquivo compiler.xml, você encontrará:

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

e você pode alterar o valor alvo do seu antigo para o novo para mim, eu precisava alterá-lo de 1,5 para 1,8

Bachiri Taoufiq Abderrahman
fonte
1

Passei um tempo lutando com o mesmo problema. A única coisa que funcionou para mim não foi usar o mvn construído (3.3.9), mas apontá-lo para uma versão externa baixada (3.5.0). Finalmente, o projeto foi aberto e tudo estava bem.

trovão
fonte
1

Esse problema ocorre se o seu módulo estiver configurado com o processador de anotações e outro não. Defina a mesma configuração para todos os módulos, pois será uma dependência cíclica.

Gani
fonte
0

Para mim, o problema era que o Maven não conseguia encontrar as configurações adequadas, pois esses itens foram especificados no pom pai.

Alterar arquivo -> configurações -> compilação, execução, implantação -> Maven -> arquivo de configurações do usuário para apontar para minhas configurações personalizadas com repositórios adequados corrigiu o problema que estava oculto.

Descobri o problema através da Ajuda -> Mostrar o log in explorer -> clicando no arquivo de log, quando anteriormente só havia o erro no título e "java.lang.NullPointerException" no console.

eis
fonte
0

A solução do problema é muito simples . Você precisa abrir o arquivo .idea / compiler.xml no seu İdea Project e

Você deve escrever a versão de destino apropriada

Axmedbek
fonte
0

Com o Intellij , usando o Maven , você deve verificar se o Intellij importou automaticamente o seu projeto. Você pode verificar clicando na guia Maven à direita do seu Editor.

insira a descrição da imagem aqui

Se o seu projeto não estiver aqui, adicione o pom.xmlarquivo clicando em +.

Obviamente, o projeto também deve ter o relevante <build/>:

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

Se nenhuma das outras respostas funcionar, verifique o SDK do módulo .

Ocorreu um erro para mim depois de atualizar o SDK do projeto para 1,8, o compilador Javac para 1,8 etc. A configuração que foi o problema para mim foi o "SDK do módulo".

(no Linux) Vá para File > Project Structure...na janela que se abre, selecione Modulesem Project Settings. Selecione o módulo em questão na lista e, em seguida, na Dependenciesguia e verifique se Module SDKestá definido adequadamente.

dzimney
fonte
0

Eu verifiquei todas as opções acima, mas o erro ainda ocorre.

Mas reimporte todos os Projetos maven (botão recarregar no painel Projetos Maven) funcionam no meu caso.

estalar
fonte
0

Não se esqueça de definir dependências para o seu módulo: insira a descrição da imagem aqui

Hieu Vo
fonte