idéia intellij - Erro: java: versão de código inválida 1.9


129

Estou tentando executar minha classe de analisador JSQL, mas estou conseguindo Error: java: invalid source release 1.9.

Eu tentei seguir esta resposta . Alterei Arquivo> Compilação, Execução, Implantação> Java Compiler> Versão do bytecode do projeto: 1.8. No entanto, não posso alterar o nível de idioma do módulo e o idioma do projeto para 1,8, porque não há opção para isso. Ainda recebo o mesmo erro abaixo.

Erro insira a descrição da imagem aqui

Código

package cs4321.project2;

import java.io.FileReader;
import net.sf.jsqlparser.parser.CCJSqlParser;
import net.sf.jsqlparser.statement.Statement;
import net.sf.jsqlparser.statement.select.Select;

public class Parser {
    private static final String queriesFile = "resources/input/queries.sql";

    public static void main(String[] args) {
        try {
            CCJSqlParser parser = new CCJSqlParser(new FileReader(queriesFile));
            Statement statement;
            while ((statement = parser.Statement()) != null) {
                System.out.println("Read statement: " + statement);
                Select select = (Select) statement;
                System.out.println("Select body is " + select.getSelectBody());
            }
        } catch (Exception e) {
            System.err.println("Exception occurred during parsing");
            e.printStackTrace();
        }
    }
}

Qual versão do intellij?
Soorapadman

@soorapadman intellij idea 2017.2.2
Alex

parece bom que deve funcionar. Você está trabalhando com o projeto maven?
Soorapadman

No entanto, não posso alterar o nível de idioma do módulo e o idioma do projeto para 1,8, porque não há opção para isso. por que? e que erro você recebe ao tentar fazer isso? Também 1.9 parece ser a versão java. Você possui o Java-9 configurado em sua máquina / intelliJ?
Naman

Respostas:


324

Selecione o projeto e, em seguida, Arquivo> Estrutura do projeto> Configurações do projeto> Módulos -> fontes Você provavelmente tem o nível de idioma definido em 9:

captura de tela

Basta alterá-lo para 8 (ou o que você precisar) e pronto.

Além disso, verifique as mesmas configurações de nível de idioma mencionadas acima, em Configurações do projeto> Projeto

insira a descrição da imagem aqui


1
Ah, finalmente eu sei o que a língua projecto meios de nível, graças
Daniel Dai

1
Além disso, na imagem acima, não se esqueça de ir para a seção de Módulos
John Peters

1
Melhor alteração no pom.xml <java.version> 1.8 </java.version> Como, caso contrário, ele pode redefinir a configuração ao reimportar para intellij
Rakesh Yembaram

21

Às vezes, o problema ocorre devido à versão incorreta do bytecode do projeto.

Portanto, verifique: Arquivo -> Configurações -> Compilação, Execução, Implantação -> Compilador -> Compilador Java -> Versão do bytecode do projeto e defina seu valor como 8

Exemplo


1
foi a solução para mim no topo de Configurações do projeto-> Módulos -> Nível de idioma
Kemal Atik

1
Esta é uma ótima resposta complementar à aceita.
Dalton

15

Eu tive o mesmo problema. Há uma resposta:

  • 1. CTRL + ALT + SHIFT + S ;
    1. Então vá para " Módulos" ;
    2. " Dependências ;
    3. Altere " Módulo SDK ".

Entendi! Agora você tem o Java 9!


5

intellij-invalid-source

Você deve definir o JAVA SDK e o nível de idioma apropriado nas configurações do projeto. Clique para ampliar.


3

Ao usar o projeto maven.

verifique o arquivo pom.xml

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>9</java.version>
</properties>

Se você tiver o jdk 8 instalado em sua máquina, altere a java.versionpropriedade de 9para8


2

Acabei de ter um problema semelhante. O projeto foi aberto usando o Java 9, mas mesmo depois de todos os módulos e projetos terem voltado para 1,8, eu ainda estava recebendo o erro.

Eu precisava forçar o Gradle a atualizar o projeto e, em seguida, tudo correu conforme o esperado.


1

Alternativamente, via Configurações do projeto:

  • Configurações do projeto
  • Projeto
  • Nível do idioma do projeto (definido para atender às suas necessidades)

Dependendo da configuração da sua compilação, este pode ser o caminho a seguir.


1

Na estrutura do projeto no SDK do projeto: modifique o SDK para 11 ou superior e no nível de idioma do projeto: modifique para 11 - sintaxe da variável local para parâmetros lambda


0

Para quem está enfrentando esse problema que tentou a solução do DeanM, mas sem sucesso, há outra coisa que vale a pena conferir, que é a versão do JDK que você configurou para o seu projeto. O que estou tentando dizer é que, se você configurou o JDK 8u191 (por exemplo) para o seu projeto, mas o nível de idioma está definido como algo maior que 8, você receberá esse erro.

Nesse caso, provavelmente é melhor perguntar a quem está encarregado do projeto, qual versão do JDK seria preferível compilar as fontes.


0

Eu também tive o mesmo problema no IntellijIdea, depois de selecionar o projeto, em Arquivo> Estrutura do projeto> Configurações do projeto> Módulos -> fontes que a opção estava mostrando - o nível de idioma definido em 9:

Então, mudei para 8. Ainda assim, meu problema não foi resolvido.

O principal problema estava no pom.xml. Reimportei o arquivo pom.xml e meu problema foi resolvido.

Portanto, sempre que você altera o arquivo pom.xml, o IDEA precisa atualizar a estrutura do projeto. Por exemplo, se você adicionou mais algumas dependências, o IDEA precisa adicioná-las como bibliotecas de projetos.

Em "Configurações> Compilação, Execução, Implantação> Ferramentas de compilação> Maven> Importação", você pode escolher "Importar projetos do Maven automaticamente". Isso invocará automaticamente a ação "Reimportar" quando o pom.xml for alterado.

insira a descrição da imagem aqui


0

Gradle Eu tive o mesmo problema e alterar todas as configurações fornecidas nas soluções anteriores não fez diferença. Depois fui para o build.gradle e encontrei esta linha e a excluí.

sourceCompatibility = '11'

e funcionou! :)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.