ไอเดีย intellij - ข้อผิดพลาด: java: รีลีสซอร์สไม่ถูกต้อง 1.9


129

ฉันพยายามที่จะทำงานระดับ JSQL parser ของฉัน Error: java: invalid source release 1.9แต่ฉันได้รับ

ฉันพยายามทำตามคำตอบนี้ ฉันเปลี่ยน File> Build, Execution, Deployment> Java Compiler> Project bytecode เวอร์ชัน: 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 idea 2017.2.2
Alex

ดูเหมือนว่าจะใช้ได้ดี คุณกำลังทำงานกับโครงการ maven หรือไม่?
soorapadman

อย่างไรก็ตามฉันไม่สามารถเปลี่ยนระดับภาษาของโมดูลและระดับภาษาของโครงการเป็น 1.8 ได้เนื่องจากไม่มีตัวเลือกสำหรับสิ่งนั้น เหตุผลที่เป็นเช่นนั้น? และคุณได้รับข้อผิดพลาดอะไรในขณะที่พยายามทำเช่นนั้น 1.9 ดูเหมือนว่าจะเป็นเวอร์ชัน java คุณกำหนดค่า Java-9 ไว้ในเครื่อง / intelliJ หรือไม่?
Naman

คำตอบ:


324

เลือกโครงการจากนั้นเลือกไฟล์> โครงสร้างโครงการ> การตั้งค่าโครงการ> โมดูล -> แหล่งที่มาคุณอาจตั้งค่าระดับภาษาไว้ที่ 9:

ภาพหน้าจอ

เพียงแค่เปลี่ยนเป็น 8 (หรืออะไรก็ได้ที่คุณต้องการ) และคุณก็พร้อมที่จะไป

ตรวจสอบการตั้งค่าระดับภาษาเดียวกันกับที่กล่าวข้างต้นภายใต้การตั้งค่าโครงการ> โครงการ

ป้อนคำอธิบายภาพที่นี่


1
ในที่สุดฉันก็รู้ว่าระดับภาษาของโครงการหมายถึงอะไรขอบคุณ
Daniel Dai

1
นอกจากนี้ในภาพด้านบนอย่าลืมไปที่ส่วนโมดูล
John Peters

1
การเปลี่ยนแปลงที่ดีขึ้นใน pom.xml <java.version> 1.8 </java.version> As มิฉะนั้นอาจรีเซ็ตการกำหนดค่าเมื่อนำเข้าใหม่ใน intellij
Rakesh Yembaram

22

บางครั้งปัญหาเกิดขึ้นเนื่องจาก bytecode โครงการเวอร์ชันไม่ถูกต้อง

ดังนั้นตรวจสอบมัน: File -> Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler -> Project bytecode version และตั้งค่าเป็น 8

ตัวอย่าง


1
มันเป็นวิธีแก้ปัญหาสำหรับฉันที่ด้านบนของการตั้งค่าโครงการ -> โมดูล -> ระดับภาษา
Kemal Atik

1
นี่เป็นคำตอบเสริมที่ดีสำหรับคำตอบที่ได้รับการยอมรับ
Dalton

15

ฉันมีปัญหาเดียวกัน มีคำตอบ:

  • 1. CTRL + ALT + SHIFT + S ;
    1. จากนั้นไปที่ " โมดูล" ;
    2. "การพึ่งพา ;
    3. เปลี่ยน " โมดูล SDK "

รับทราบ! ตอนนี้คุณมี Java 9 แล้ว!



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

ในโครงสร้างโครงการในProject SDK:แก้ไข SDK เป็น 11 หรือสูงกว่าและในระดับภาษาของโครงการ:แก้ไขเป็น 11 - ไวยากรณ์ตัวแปรภายในสำหรับพารามิเตอร์แลมบ์ดา


0

สำหรับทุกคนที่กำลังดิ้นรนกับปัญหานี้ซึ่งลองใช้โซลูชันของ DeanM แต่ไม่มีประโยชน์มีสิ่งอื่นที่ควรตรวจสอบซึ่งเป็นเวอร์ชันของ JDK ที่คุณกำหนดค่าไว้สำหรับโครงการของคุณ สิ่งที่ฉันพยายามจะบอกก็คือถ้าคุณกำหนดค่า JDK 8u191 (เช่น) สำหรับโปรเจ็กต์ของคุณ แต่ตั้งค่าระดับภาษาไว้ที่อะไรก็ได้ที่สูงกว่า 8 คุณจะได้รับข้อผิดพลาดนี้

ในกรณีนี้อาจเป็นการดีกว่าที่จะถามว่าใครเป็นผู้รับผิดชอบโครงการ JDK เวอร์ชันใดที่ควรรวบรวมแหล่งที่มา


0

ฉันยังมีปัญหาเดียวกันใน IntellijIdea หลังจากเลือกโครงการแล้ว File> ProjectStructure> ProjectSettings> Modules -> แหล่งที่มาที่ตัวเลือกแสดง - ระดับภาษาตั้งไว้ที่ 9:

ดังนั้นฉันแค่เปลี่ยนเป็น 8 แต่ปัญหาของฉันยังไม่ได้รับการแก้ไข

ปัญหาหลักเกิดจาก pom.xml ฉันนำเข้าไฟล์ pom.xml อีกครั้งและปัญหาของฉันได้รับการแก้ไขแล้ว

ดังนั้นเมื่อใดก็ตามที่คุณเปลี่ยนไฟล์ pom.xml IDEA จำเป็นต้องอัปเดตโครงสร้างโครงการ ตัวอย่างเช่นหากคุณได้เพิ่มการอ้างอิงเพิ่มเติม IDEA จำเป็นต้องเพิ่มเป็นไลบรารีโครงการ

ใน "Settings> Build, Execution, Deployment> Build Tools> Maven> Importing" คุณสามารถเลือก "นำเข้าโครงการ 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.