Erro: java: versão de origem inválida: 8 no Intellij. O que isso significa?

342

Estou tentando compilar algum código no uso do Intellij Ultimate 13.1.4, mas recebo o seguinte erro e não faço ideia do que isso significa:

Information:Using javac 1.7.0_55 to compile java sources
Information:java: Errors occurred while compiling module 'Example'
Information:Compilation completed with 1 error and 0 warnings in 3 sec
Information:1 error
Information:0 warnings
Error:java: invalid source release: 8

Meu palpite é que é algo relacionado ao Java 8 vs Java 7, mas não tenho idéia do que especificamente. Tentei pesquisar no Google por esta mensagem, mas eles falam sobre javacou target release, portanto, parece não se aplicar.

David diz Reinstate Monica
fonte
2
Qual versão do Java está instalada? Para qual JRE / JDK você apontou intellij, nas configurações do IDE?
Nanofarad
2
Provavelmente as configurações do projeto. Verifique o JDK que você está apontando e o nível de idioma solicitado.
Duffymo
11
@ Duffymo você estava certo, estava apontando para 8. Eu não sabia que isso era um cenário.
David diz Reinstate Monica

Respostas:

767

Eu tive o mesmo problema ao "desclassificar" um projeto do Java 8 para o Java 6. O motivo foi que ele não foi alterado em todos os lugares no IntelliJ.

No IntelliJ 13.1.4, tive que alterar a versão Java e SDK nos seguintes locais para não obter esse erro:

  • Arquivo -> Estrutura do Projeto -> Configurações do Projeto
  • Arquivo -> Estrutura do projeto -> Configurações do módulo -> Guia: Fontes: Nível de idioma
  • Arquivo -> Estrutura do projeto -> Configurações do módulo -> Guia: Dependências: SDK do módulo
  • Arquivo -> Configurações -> Compilador -> Java Compiler -> Versão de bytecode de destino

captura de tela de Arquivo> Estrutura do projeto> Projeto

captura de tela de Arquivo> Estrutura do projeto> Módulos> Fontes

captura de tela de Arquivo> Estrutura do projeto> Módulos> Dependências

captura de tela de Arquivo> Configurações / Preferências> Compilador> Java Compiler

O último marcador foi o que não foi atualizado no meu caso. Depois que eu mudei isso, o erro desapareceu.

Andreas Lundgren
fonte
31
o me matando era este: File -> Settings -> Compiler -> Java Compiler -> Target bytecode version. Obrigado.
bitoiu
18
Eu também estava enfrentando esse problema, mas nenhuma das opções acima funcionou. Eu tinha que fazer IntelliJ IDEA -> Preferences... -> Build, Execution, Deployment -> Build Tools -> Gradle -> Gradle JVM, caso alguém esteja enfrentando esse problema enquanto estiver usando o Gradle.
Emil
2
Fonte: Nível de idioma alterado para 7 - Diamonds, ARM, multi-catch etc. para IDEA 15
Mia
4
Essa deve ser a resposta aceita. Como um pequeno aviso, no IntelliJ IDEA 15, o ponto 4 foi movido para Preferences -> Build, Execution, Deployment -> Compiler -> Java Compiler.
iusting
Há também uma seleção JRE em algumas configurações de execução / depuração. Por exemplo, as configurações de execução / depuração do Tomcat têm um seletor "JRE" que pode causar esse erro.
Jordanpg
16

Verifique seu pom.xmlprimeiro (se você tiver um)
Verifique a JDKdependência do seu módulo . Certifique-se de que é Para fazer isso, vá para Estrutura do projeto -> SDKs Adicione o caminho para o local onde você armazenou 1.8 ( no meu caso) Aplique as alterações Agora, vá para Estrutura do projeto -> Módulos Altere o SDK do módulo para aplicar as alterações1.8

jdk1.8.0_45.jdk


1.8

Voila! Você Terminou

Yash Bajaj
fonte
6

Para usuários do Gradle com esses problemas, se nada acima ajudar é isso que resolveu o meu problema - aplique essas declarações nos arquivos build.gradle:

targetCompatibility = 1.6 //or 1.7;1.8 and so on
sourceCompatibility = 1.6 //or 1.7;1.8 and so on

Problema resolvido!

Java_Waldi
fonte
5

Mudar pom.xml 1.6para1.8

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
    </configuration>
</plugin>
Aziz Mamoyan
fonte
5

Isso pode ser simplesmente superado com a ativação Project Structure. Você só precisa selecionar o caminho certo para a versão relacionada do JDK. Selecione newna guia dependências e escolha o caminho. Está feito!

insira a descrição da imagem aqui

snr
fonte
4

Se você estiver usando o Gradle como uma ferramenta de construção e receber esse erro ao executar uma tarefa do Gradle, ou seja, o TomcatRun dê uma olhada na minha outra resposta para a mesma pergunta

javac: liberação de destino inválida: 1.8

juliangonzalez
fonte
Obrigado! Isso resolveu meu problema depois que as respostas acima não o fizeram.
chazzlabs
2

A resposta de Andreas Lundgren funcionou e eu pude compilar e executar meu aplicativo.

No entanto, quando tentei executar os testes JUnit associados ao projeto, recebi o mesmo erro. Corrida

gradle -version

no prompt de comando do Windows mostrou que o gradle ainda estava pegando o jdk incorreto. Para corrigi-lo, tive que definir a JAVA_HOMEvariável de ambiente para apontar para o jdk correto e reiniciar o IntelliJ.

jilbot
fonte
1

Eu verifiquei tudo acima da versão do projeto, versão do módulo, versão do bytecode do projeto, configurações da versão do bytecode de destino IntelliJ Idea, mas todas foram as mesmas que eu arranhei.

Eu enfrento esse erro Error:java: invalid source release: 1.8em IntelliJ Idea 2017.2.6porque eu atualizado a versão da dependênciaMaven de arquivo pom, que (dependência) deveriam construir para 1,8 aplicação JDK e eu estávamos construindo meu aplicativo no e com fonte do compilador maven e JDK 1.7 alvo.

Por isso, novamente, rebaixo a versão de dependência para a anterior no Mavenpom, e o erro ocorreu após o projeto Rebuild Module 'xyz_project'.

ArifMustafa
fonte
0

Para usuários do Grails, aplique estas declarações no seu arquivo BuildConfig.groovy:

grails.project.target.level = 1.6 //or 1.7;1.8 and so on
grails.project.source.level = 1.6 //or 1.7;1.8 and so on
B5A7
fonte
0

Você precisa clicar no projeto Open Module Settings e alterar o caminho do seu JDK, se no arquivo POM você usa o jdk 1.8, configure o jdk 1.8 com o caminho correto.

Katherine Nicol
fonte
0

Tentei todas as etapas mencionadas aqui https://stackoverflow.com/a/26009627/2058104 , mas o quarto ponto foi alterado. Você precisa ir para Preferências -> Compilação, Execução, Implantação -> Compilador -> Compilador Java

Lá, como mostrado na figura abaixo, você precisa alterar a "Versão do bytecode de destino". Embora eu mudei para 8 (já que precisava fazer o downgrade para o Java 8), ele estava dando o mesmo erro repetidamente. Portanto, tente remover a entrada existente (nesta tabela) e adicione-a novamente. Isso funcionou para mim.

insira a descrição da imagem aqui

Por outro lado, limpe o projeto e tente executar novamente.

cresclux
fonte