IntelliJ: Erro: java: erro: versão 5 não suportada

14

Estou usando o IntelliJ IDEA Ultimate 2019.3.1 . Sempre que tento iniciar qualquer projeto simples do Java Maven (seja um simples Hello World), recebo o seguinte erro:

Error:java: error: release version 5 not supported

Executando java --versionpelo terminal, recebo a seguinte saída:

openjdk 11.0.5 2019-10-15
OpenJDK Runtime Environment (build 11.0.5+10-post-Ubuntu-0ubuntu1.1)
OpenJDK 64-Bit Server VM (build 11.0.5+10-post-Ubuntu-0ubuntu1.1, mixed mode, sharing)

Executando javac --versionpelo terminal, recebo a seguinte saída:

javac 11.0.5

Indo para as configurações do compilador Java (como sugerido aqui ), vejo o seguinte:

Configurações do compilador Java

Tentei editar a " versão de bytecode de destino " para 1,8, mas os seguintes erros são exibidos:

Error:(1, 26) java: package javafx.application does not exist
Error:(2, 20) java: package javafx.stage does not exist
Error:(4, 27) java: cannot find symbol
  symbol: class Application
Error:(12, 23) java: cannot find symbol
  symbol:   class Stage
  location: class Main
Error:(7, 9) java: cannot find symbol
  symbol:   method launch(java.lang.String[])
  location: class Main
Error:(11, 5) java: method does not override or implement a method from a supertype

Alterando-o para a versão 1.11 , recebo este erro:

Error:java: Source option 5 is no longer supported. Use 6 or later.

O que você acha que é o problema? Como posso resolver isso?

Robb1
fonte
Qual é o nível de linguagem do projeto e dos módulos?
Bas Leijdekkers

Respostas:

33

Consulte  https://stackoverflow.com/a/12900859/104891 .

Primeiro de tudo, defina o language level/ release versionsin pom.xmlassim:

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

O Maven define o padrão para 1,5, caso contrário. Você também precisará incluir o maven-compiler-plugincaso ainda não tenha:

<dependency>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.8.1</version>
</dependency>

Além disso, tente alterar a versão do Java em cada um desses locais:

Arquivo -> Estrutura do projeto -> Projeto -> SDK do projeto -> 11.

Arquivo -> Estrutura do projeto -> Projeto -> Nível do idioma do projeto -> 11.

Arquivo -> Estrutura do projeto -> Projeto -> Módulos -> -> Fontes -> 11

No projeto -> ctrl+ alt+ s-> Compilação, Execução, Implantação -> Compilador -> Compilador Java -> Versão do bytecode do projeto -> 11

No projeto -> ctrl+ alt+ s-> Compilação, Execução, Implantação -> Compilador -> Java Compiler -> Módulo -> 1.11.

Konstantin Annikov
fonte
2
Eu fiz tudo, mas ainda vejo o mesmo erro sempre que executo o aplicativo
Tushar Jajodia
@TusharJajodia tente incluir maven-compiler-plugincomo dependência
Josh Johnson
Depois de tentar várias soluções on-line sem sorte, essa linha em particular resolveu o problema: Arquivo -> Estrutura do projeto -> Projeto -> Módulos -> -> Fontes -> 11
Maude
Na verdade, o caminho certo para isso no java 9+ é definir o maven-compiler-pluginplugin como ao invés de dependência. Não é necessário configurar nada no IntelliJ, basta configurar seu pom da maneira certa e ele funcionará no IntelliJ imediatamente !
Jacob van Lingen
2

Levei um tempo para agregar uma solução real, mas aqui está como se livrar desse erro de compilação.

  1. Abra as preferências do Intelij
  2. Procure por "compilador (ou algo como" compi "
  3. role para baixo até Maven -> compilador java. No painel direito, haverá uma lista de módulos e sua versão de compilação java associada "versão de bytecode de destino".
  4. Selecione uma versão> 1.5. Pode ser necessário atualizar seu jdk se um não estiver disponível. insira a descrição da imagem aqui
borisveis
fonte
1

Se você estiver usando o spring boot como pai, defina a propriedade java.version, pois isso definirá automaticamente as versões corretas.

<properties>
   <java.version>11</java.version>
</properties>

A propriedade definida em seu próprio projeto substitui o que for definido no pom pai. Isso substitui todas as propriedades necessárias para compilar na versão correta.

Algumas informações podem ser encontradas aqui: https://www.baeldung.com/maven-java-version

V Jansen
fonte
Também estou começando a aprender sobre o Spring Boot agora, para que essas informações possam ser realmente úteis para mim :) você pode explicá-las mais detalhadamente? (Em qual arquivo devo alterar essas propriedades, o que devo escrever exatamente ...?) Obrigado!
Robb1 6/01
11
Eu adicionei algumas informações extras no meu post.
V Jansen
1

Se você estiver usando intellj, configure => compilador altere a versão para ur java current version

Sikhumbuzo Sithole
fonte
0

Eu adiciono o próximo código ao meu pom.xmlarquivo, ele resolveu o meu problema.

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>
Jéssica Machado
fonte
0

Você precisa adicionar apenas duas linhas no seu pom.xml e, depois disso, seu problema desaparecerá.
Adicione essas duas linhas no seu pom.xml -

<!--pom.xml-->
<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>
Mehedi Abdullah
fonte
0

No IntelliJ, abra o arquivo pom.xml

Adicione esta seção antes (se o seu arquivo já tiver uma seção, basta adicionar as linhas abaixo a essa seção existente):

<properties> 
      <maven.compiler.source>1.8</maven.compiler.source> 
      <maven.compiler.target>1.8</maven.compiler.target> 
   </properties>`
Ali Shah
fonte
0

A única solução que funcionava no meu caso foi adicionar o seguinte bloco a pom.xml:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version> <configuration> <release>12</release>
        </configuration>
        </plugin>
    </plugins>
</build>
Muhammed Gül
fonte