IntelliJ: ข้อผิดพลาด: java: ข้อผิดพลาด: ไม่รองรับรุ่น 5


14

ฉันใช้IntelliJ IDEA สุดยอด 2019/03/01 เมื่อใดก็ตามที่ฉันพยายามเริ่มต้นโครงการ Java Maven ง่ายๆ (อาจเป็น Hello World ง่ายๆ) ฉันได้รับข้อผิดพลาดดังต่อไปนี้:

Error:java: error: release version 5 not supported

ทำงานjava --versionโดย terminal ฉันได้รับผลลัพธ์ต่อไปนี้:

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)

ทำงานjavac --versionโดย terminal ฉันได้รับผลลัพธ์ต่อไปนี้:

javac 11.0.5

ไปที่การตั้งค่าของ Java Compiler (ตามที่แนะนำไว้ที่นี่ ) ฉันเห็นสิ่งนี้:

การตั้งค่า Java Compiler

ฉันพยายามแก้ไข " Target bytecode version " เป็น1.8แต่ฉันได้รับข้อผิดพลาดดังต่อไปนี้:

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

เปลี่ยนเป็นเวอร์ชั่น1.11ฉันได้รับข้อผิดพลาดนี้แทน:

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

คุณคิดว่าปัญหาคืออะไร ฉันจะแก้ไขได้อย่างไร


ระดับภาษาของโครงการและโมดูลคืออะไร?
Bas Leijdekkers

คำตอบ:


33

ดู  https://stackoverflow.com/a/12900859/104891

ก่อนอื่นให้ตั้งค่าlanguage level/ release versionsin pom.xmlดังนี้

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

Maven ตั้งค่าเริ่มต้นเป็น 1.5 มิฉะนั้น คุณจะต้องรวมmaven-compiler-pluginหากยังไม่ได้ทำ:

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

นอกจากนี้ลองเปลี่ยนรุ่น Java ในแต่ละสถานที่เหล่านี้:

ไฟล์ -> โครงสร้างโครงการ -> โครงการ -> SDK โครงการ -> 11

ไฟล์ -> โครงสร้างโครงการ -> โครงการ -> ระดับภาษาของโครงการ -> 11

ไฟล์ -> โครงสร้างโครงการ -> โครงการ -> โมดูล -> -> แหล่งที่มา -> 11

ในโครงการ -> ctrl+ alt+ s-> Build, Execution, Deployment -> Compiler -> Java Compiler -> Project bytecode เวอร์ชั่น -> 11

ในโครงการ -> ctrl+ alt+ s-> Build, Execution, Deployment -> Compiler -> Java Compiler -> Module -> 1.11


2
ฉันได้ทำทุกอย่างแล้ว แต่ถึงกระนั้นฉันก็เห็นข้อผิดพลาดเดียวกันเมื่อใดก็ตามที่ฉันเรียกใช้แอปพลิเคชัน
Tushar Jajodia

@TusharJajodia ลองรวมถึงmaven-compiler-pluginการพึ่งพา
Josh Johnson

หลังจากลองใช้วิธีแก้ปัญหาแบบออนไลน์โดยไม่มีโชคบรรทัดนี้จะแก้ไขปัญหา: ไฟล์ -> โครงสร้างโครงการ -> โครงการ -> โมดูล -> -> แหล่งข้อมูล -> 11
ม้อด

2

เอาฉันสักครู่เพื่อรวมการแก้ปัญหาจริง แต่นี่คือวิธีกำจัดข้อผิดพลาดการคอมไพล์นี้

  1. เปิดการตั้งค่า Intelij
  2. ค้นหา "compiler (หรือบางอย่างเช่น" compi "
  3. เลื่อนลงไปที่ Maven -> java compiler ในแผงด้านขวาจะเป็นรายการของโมดูลและรุ่นคอมไพล์ของ java ที่เกี่ยวข้อง "target bytecode version"
  4. เลือกรุ่น> 1.5 คุณอาจต้องอัพเกรด jdk ของคุณหากไม่มีอยู่ ป้อนคำอธิบายรูปภาพที่นี่

1

หากคุณใช้ spring boot เป็นพาเรนต์คุณควรตั้งค่าคุณสมบัติ java.version เนื่องจากจะเป็นการตั้งเวอร์ชั่นที่ถูกต้องโดยอัตโนมัติ

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

คุณสมบัติที่กำหนดไว้ในโครงการของคุณจะแทนที่สิ่งที่ตั้งค่าไว้ใน parent pom สิ่งนี้จะแทนที่คุณสมบัติที่จำเป็นทั้งหมดเพื่อคอมไพล์เป็นเวอร์ชันที่ถูกต้อง

ข้อมูลบางส่วนสามารถดูได้ที่นี่: https://www.baeldung.com/maven-java-version


ฉันเริ่มเรียนรู้เกี่ยวกับ Spring Boot แล้วดังนั้นข้อมูลนี้มีประโยชน์จริงๆสำหรับฉัน :) คุณช่วยอธิบายรายละเอียดเพิ่มเติมหน่อยได้ไหม (ในไฟล์อะไรที่ฉันควรเปลี่ยนคุณสมบัติเหล่านั้นฉันควรจะเขียนอะไร ... ?) ขอบคุณ!
Robb1

1
ฉันเพิ่มข้อมูลพิเศษบางอย่างในโพสต์ของฉัน
V Jansen


0

ฉันเพิ่มรหัสถัดไปในpom.xmlไฟล์ของฉันมันแก้ปัญหาของฉันได้

<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>

0

คุณต้องเพิ่มเพียงสองบรรทัดในpom.xmlของคุณและหลังจากนั้นปัญหาของคุณจะหายไป
เพิ่มสองบรรทัดนี้ใน pom.xml ของคุณ -

<!--pom.xml-->
<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

0

ภายใน IntelliJ ให้เปิดไฟล์ pom.xml

เพิ่มส่วนนี้ก่อน (หากไฟล์ของคุณมีส่วนอยู่แล้วให้เพิ่มบรรทัดด้านล่างลงในส่วนที่มีอยู่เดิม):

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

0

ทางออกเดียวที่ทำงานในกรณีของฉันคือการเพิ่มบล็อกต่อไปนี้ไปที่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>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.