javac: versão alvo inválida: 1.8

87

Recentemente, baixei o JDK 1.8.0.0_06 que vem junto com o NetBeans. Então descobri que meu projeto JavaFx, que tenho desenvolvido em Java 1.7, não compila em Java 1.8, então reduzi meu JDK para 1.7. Ainda não consigo fazer funcionar / compilar. Eu recebo este erro:

javac: invalid target release: 1.8
Usage: javac <options> <source files>

Estou realmente preso e agradeceria muito qualquer ajuda.

Program-Me-Rev
fonte
1
se você vai deixar o cargo, então mude a fonte do seu projeto para 1.7 também, clique com o botão direito em Project -> Properties -> Sources windowe defina 1.7 aqui
Jigar Joshi
Você é um salva-vidas @Jigar Joshi !!!! Obrigado mais uma vez ***** um moinho. Estou muito grato. Você poderia colocar sua resposta como uma resposta para que eu possa aceitá-la. Uau! Mais uma vez obrigado. Esteve preso por tanto tempo!
Program-Me-Rev
Se o seu projeto não compilar no Java 1.8, você provavelmente está fazendo algo muito errado (por exemplo, você tem campos estáticos para os componentes de IU no código que postou em sua outra pergunta, o que é um erro de design sério). Provavelmente, é melhor corrigir esse problema do que apenas reverter para uma versão da qual muitos usuários farão a atualização em algum momento no futuro.
James_D
Você está certo @James_D. Este é meu primeiro projeto em java. Eu praticamente aprendi a programar sozinho, e não estava entendendo tudo sobre como evitar membros estáticos, interfaces e o resto sobre polimorfismo até agora. Meu projeto é um pouco grande para ser editado de uma vez. Eu pretendo editá-lo e passar para a injeção de dependência por meio do Spring, pouco a pouco, à medida que terminar nas outras áreas restantes. É uma lição dolorosa, mas bem aprendida.
Program-Me-Rev
1
Existem versões do Java 1.8.0, 1.8.0_05 e 1.8.0_11, mas não existe 1.8.0.0_06.
David Conrad

Respostas:

33

se você vai deixar o cargo, mude a fonte do seu projeto para 1.7 também,

right click on your Project -> Properties -> Sources window 

e definir 1.7aqui

nota: no entanto, eu sugiro que você descubra por que ele não funciona no 1.8

Jigar Joshi
fonte
66

Para IntelliJ14, você pode ter que alterar a versão do bytecode do JDK que você está usando (nas configurações globais):

insira a descrição da imagem aqui

vikasing
fonte
Não funciona para mim, alterando a versão do bytecode de destino para 1.8, mas obtém o mesmo erro
tribbloid
Mas a pergunta era sobre o Netbeans?
Jolta
27
  1. Faça download do JDK 8 .
  2. Edite seu env var para JAVA_HOMEapontar para o novo JDK 1.8 instalado: R-clique em Meu Computador -> Propriedades -> Configurações Avançadas do Sistema -> Variáveis ​​de Ambiente encontradas JAVA_HOMEna lista e defina seu valor para algo assim:

    C:\Program Files\Java\jdk1.8.0_31
  3. Encontre a versão antiga e edite-a na PATHvariável também.

  4. Provavelmente você precisará reiniciar o sistema.

Deve ser feito.

Thorinkor
fonte
23

Se esse erro ocorrer ao executar uma tarefa Gradle (ou Maven), você precisará modificar a configuração da ferramenta de compilação para apontar para a instalação do Java JDK 1.8 seguindo esta rota:

Arquivo -> Configurações -> Compilação, execução, implantação -> Ferramentas de compilação -> Gradle

Lá, você verifica se o projeto do Gradle vinculado é aquele em que está trabalhando e seleciona a JVM do Gradle (você não percebeu isso quando importou o projeto do gradle para o IntelliJ)

insira a descrição da imagem aqui

Lembre-se, ao importar um projeto Gradle (ou Maven), de definir a JVM de destino corretamente aqui: insira a descrição da imagem aqui

Juliangonzalez
fonte
14

Seu javac não está apontando para o java correto.

Verifique para onde seu javac está apontando usando o seguinte comando -

update-alternatives --config javac

Se não estiver apontado para o javac com o qual você deseja compilar, aponte-o para "/ JAVA8_HOME / bin / javac", ou qualquer java com o qual deseja compilar.

Piyush Jajoo
fonte
por que -1, tive o mesmo problema, e isso foi porque meu javac não foi configurado para corrigir a versão do java?
Piyush Jajoo
Lembre-se de que a configuração pode ser quebrada da mesma forma que java e javac são escolhidos em distribuições diferentes!
Audrius Meskauskas
9

Na maioria das vezes, esse tipo de problema ocorre devido à versão incorreta do java. Certifique-se de que as variáveis ​​PATH e JAVA_HOME estejam apontando para a versão correta.

jprisma
fonte
Sim - essa foi a minha causa também
cara mograbi
4

Configuração Maven:

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>
it-webwork
fonte
4

Nenhuma das soluções anteriores funcionou para mim.

Eu resolvi isso editando .idea / compiler.xml Havia cópias "extras" (1) e (2) do módulo defeituoso com destinos diferentes. Eu apaguei a entrada estranha e alterei os alvos na seção para 1.8 e funcionou.

Bill Masek
fonte
Isso também resolveu para mim.
davidmerrick
2

Para a última versão do IntelliJ IDEA Ultimate em 18 de dezembro de 2017, se as sugestões acima não funcionarem, tente o seguinte: Clique com o botão direito no projeto e navegue até "Abrir configurações do módulo". Abra-o e altere o "Nível de idioma" no menu suspenso.

PATETA
fonte
Além disso, certifique-se de que em Configurações do módulo, na guia Dependências, o SDK do módulo correto seja escolhido.
Rene Juuse
2

Apenas faça isso . Em seguida, invalide caches IntelliJ ( File -> Invalidate Caches)

user3399000
fonte
1

se você vai deixar o cargo, mude a fonte do seu projeto para 1.7 também,

clique com o botão direito em seu Projeto -> Propriedades -> janela Códigos-fonte e defina 1.7 aqui "Jigar Joshi

Acesse também build-impl.xmle procure o imóvelexcludeFromCopy="${copylibs.excludes}" e exclua esta propriedade no meu código estava na linha 827, mas eu vi em outras linhas

para mim, estava levando um código do MAC OS java 1.8 para WIN XP java 1.7

JAG NUNEZ
fonte
1

Como alternativa, verifiquei o pom.xml e alterei

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

para

<java.version>1.7</java.version>
nanospeck
fonte
Gracias, isso consertou para mim, tão simples.
Fabii
1

Eu tive o mesmo problema com o netbeans, mas mvn build está OK na janela cmd. Para mim, o problema foi resolvido após alterar o JDK do netbeans (em netbeans.conf como abaixo),

netbeans_jdkhome = "C: \ Arquivos de programas \ Java \ jdk1.8.0_91"


Edit: Parece que é mencionado aqui: bug 236364 do netbeans

Leon
fonte
1

Tive o mesmo problema no IntelliJ IDEA Community com Maven e tive que reimportar o projeto clicando com o botão direito do mouse na guia Projeto -> Maven -> Reimportar

Csa77
fonte
0

Instalar uma versão mais recente da Comunidade IDEA (2018.3 em vez de 2017.x) resolveu meu problema com o mesmo erro, mas versão java: 11. A reimportação não funcionou para mim. Mas vale a pena tentar.

Laszlo Lugosi
fonte