intellij idea-오류 : java : 잘못된 소스 릴리스 1.9


129

JSQL 파서 클래스를 실행하려고하는데 Error: java: invalid source release 1.9.

나는 이 대답 을 따르려고 노력했다 . File> Build, Execution, Deployment> Java Compiler> Project 바이트 코드 버전을 1.8로 변경했습니다. 그러나 옵션이 없기 때문에 모듈 언어 수준과 프로젝트 언어 수준을 1.8로 변경할 수 없습니다. 여전히 아래에서 동일한 오류가 발생합니다.

오류 여기에 이미지 설명을 입력하십시오

암호

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();
        }
    }
}

어떤 버전의 intellij?
soorapadman

@soorapadman intellij 아이디어 2017.2.2
Alex

괜찮을 것 같습니다. maven 프로젝트로 작업하고 있습니까?
soorapadman

그러나 옵션이 없기 때문에 모듈 언어 수준과 프로젝트 언어 수준을 1.8로 변경할 수 없습니다. 왜 이렇게이다? 그리고 시도하는 동안 어떤 오류가 발생합니까? 또한 1.9는 Java 버전 인 것 같습니다. 컴퓨터 / intelliJ에 Java-9가 구성되어 있습니까?
Naman

답변:


324

프로젝트를 선택한 다음 파일> ProjectStructure> 프로젝트 설정> 모듈-> 소스를 선택하십시오. 언어 레벨이 9로 설정되어있을 것입니다.

스크린 샷

8 (또는 필요한 것)로 바꾸면됩니다.

또한 프로젝트 설정> 프로젝트에서 위에서 언급 한 것과 동일한 언어 레벨 설정을 확인하십시오.

여기에 이미지 설명을 입력하십시오


1
오, 마침내 나는 프로젝트 언어 수준이 무엇을 의미하는지 알고있다.
Daniel Dai

1
또한 위의 이미지에서 모듈 섹션을 방문하는 것을 잊지 마십시오
John Peters

1
pom.xml <java.version> 1.8 </java.version>의 더 나은 변경 As, 그렇지 않으면 intellij로 다시 가져올 때 구성을 재설정 할 수 있습니다
Rakesh Yembaram

21

때로는 잘못된 버전의 프로젝트 바이트 코드로 인해 문제가 발생합니다.

파일-> 설정-> 빌드, 실행, 배치-> 컴파일러-> Java 컴파일러-> 프로젝트 바이트 코드 버전을 확인하고 값을 8로 설정하십시오.

예


1
이 프로젝트 설정 -> 모듈의 상단에 나를 위해 솔루션이었다 -> 언어 레벨
케말 Atik

1
이것은 받아 들여진 것에 대한 보완적인 해답입니다.
Dalton

15

나는 같은 문제가 있었다. 답이 있습니다 :

  • 1. CTRL + ALT + SHIFT + S ;
    1. 그런 다음 " 모듈" 로 이동하십시오 .
    2. " 종속성 ;
    3. " Module SDK "를 변경하십시오 .

알았다! 이제 당신은 Java 9를 가지고 있습니다!


5

intellij-invalid-source

프로젝트 설정에서 JAVA SDK 및 적절한 언어 레벨을 설정했습니다. 클릭하면 확대됩니다.


3

maven 프로젝트를 사용할 때.

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>

컴퓨터에 jdk 8이 설치되어 있으면 java.version속성을 9에서8


2

방금 비슷한 문제가있었습니다. 프로젝트는 Java 9을 사용하여 열었지만 모든 모듈과 프로젝트가 1.8로 다시 설정된 후에도 여전히 오류가 발생했습니다.

Gradle이 프로젝트를 새로 고치도록 강요하고 모든 것이 예상대로 실행되었습니다.


1

또는 프로젝트 설정을 통해 :

  • 프로젝트 설정
  • 계획
  • 프로젝트 언어 수준 (필요에 맞게 설정)

빌드 설정 방법에 따라이 방법이 될 수 있습니다.


1

에서 프로젝트 구조 에서 프로젝트 SDK : 11 이상으로과에서 SDK를 수정 프로젝트 언어 수준 : 11 수정 - 람다 매개 변수에 대한 지역 변수 구문을


0

DeanM의 솔루션을 사용해 보았지만 아무 소용이없는이 문제로 어려움을 겪고있는 사람에게는 프로젝트에 대해 구성 한 JDK의 버전 인 확인할만한 것이 있습니다. 내가 말하고 싶은 것은 프로젝트에 JDK 8u191 (예 : JDK 8u191)을 구성했지만 언어 수준을 8보다 높게 설정하면이 오류가 발생한다는 것입니다.

이 경우 프로젝트를 담당하는 사람에게 소스를 컴파일하는 데 어떤 버전의 JDK가 더 적합한 지 물어 보는 것이 좋습니다.


0

IntellijIdea에서도 프로젝트를 선택한 다음 파일> ProjectStructure> 프로젝트 설정> 모듈-> 옵션이 표시되는 소스-9에서 설정된 언어 레벨과 동일한 문제가 발생했습니다.

그래서 그냥 8로 변경하십시오. 여전히 내 문제가 해결되지 않았습니다.

주요 문제는 pom.xml과 관련이있었습니다. pom.xml 파일을 다시 가져 와서 문제가 해결되었습니다.

따라서 pom.xml 파일을 변경할 때마다 IDEA는 프로젝트 구조를 업데이트해야합니다. 예를 들어 종속성을 더 추가 한 경우 IDEA는이를 프로젝트 라이브러리로 추가해야합니다.

"설정> 빌드, 실행, 배포> 빌드 도구> Maven> 가져 오기"에서 "Maven 프로젝트 자동 가져 오기"를 선택할 수 있습니다. pom.xml이 변경되면 자동으로 "다시 가져 오기"작업이 호출됩니다.

여기에 이미지 설명을 입력하십시오


0

Gradle 나는 같은 문제가 있었고 이전 솔루션에서 제공된 모든 설정을 변경해도 아무런 차이가 없었습니다. 내가 build.gradle에 가서이 줄을 찾아서 삭제 한 것보다.

sourceCompatibility = '11'

그리고 그것은 효과가 있었다! :)


0

SpringBoot 프로젝트를 실행하는 동안이 문제가 발생했습니다 (Maven)

내 POM 파일에서 Java 버전을 11에서 8로 변경했으며 작동했습니다.

<properties>
    <java.version>8</java.version> //The default was 11
</properties>

Load maven changes변경 사항이 반영되지 않도록하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.