ข้อผิดพลาด: java: javacTask: source release 8 ต้องใช้รีลีสเป้าหมาย 1.8


889

การใช้ IntelliJ IDE ไม่สามารถรวบรวมโครงการใด ๆ ภาพหน้าจอของการตั้งค่าด้านล่าง:

ใช้ JDK:

http://gyazo.com/b6e32119af7b04090d890cad04db6373

SDK โครงการและระดับภาษา:

http://gyazo.com/55a5fc9f7f2bb721a04780ce9d74eeab

ระดับภาษา:

http://gyazo.com/143bffad63fd89cafc231298729df2fc

ใครมีความคิดเห็นบ้าง


1
ไม่เหมือนข้อผิดพลาดจาก "pure Intellij"; คุณไม่ได้ใช้ ant buildscript หรืออะไร?
fge


คำตอบ:


1911
  1. ไฟล์> การตั้งค่า> สร้างการดำเนินการปรับใช้> คอมไพเลอร์> Java คอมไพเลอร์
  2. เปลี่ยนTarget bytecode versionเป็น1.8ของโมดูลที่คุณใช้งานอยู่

หากคุณใช้ Maven

เพิ่มคอมไพเลอร์ปลั๊กอินpom.xmlภายใต้projectโหนดระดับบนสุด:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

(ยกขึ้นจากความคิดเห็น)

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


ทำงานใน IntelliJ 14 Ultimate
DtechNet

สำหรับเวอร์ชัน IDEA ที่เก่ากว่าให้ลอง: การตั้งค่า -> คอมไพเลอร์ -> Java คอมไพเลอร์ -> รุ่น
บิทคอยน์

88
หากคุณใช้ Mac อยู่ภายใต้ Intellij IDEA> ค่ากำหนด ... > Build, Execution, Deployment> Java Compiler
JP Armstrong

4
สำหรับ Intellij ใหม่กว่า 2,016.2 Project Structure -> Project Settings -> Modules -> Denpendencies -> Module SDKมีสถานที่หนึ่งมากขึ้นในการตรวจสอบ:
บรูซซัน

1
เมื่อคุณมีลำดับชั้น POM ที่มีมากกว่าสองระดับและปลั๊กอินคอมไพเลอร์ของคุณถูกกำหนดใน POM หลัก IntelliJ อาจไม่รู้จักมันในระดับที่ลึกที่สุด ฉันบอกว่าอาจไม่ได้เพราะสำหรับโมดูลอื่น ๆ บางอย่างมันทำแม้เมื่อพวกเขาขยาย POM ผู้ปกครองคนเดียวกัน
Dormouse


116

ดูเหมือนว่าชนิดของข้อผิดพลาดที่ Maven สร้างขึ้นเมื่อคุณไม่มีปลั๊กอินคอมไพเลอร์ที่กำหนดค่าไว้อย่างถูกต้อง นี่คือตัวอย่างของการกำหนดค่าคอมไพเลอร์ Java 8

<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<!-- ... -->

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

<!-- ... -->

</project>

10
สำหรับมือใหม่ Maven อื่น ๆ เช่นตัวเองนี้ควรอยู่ภายใต้project, และจากนั้นbuild plugins
Darren Hale

4
นอกจากนี้หาก<source>1.8</source>และ<target>1.8</target>มีการกำหนดค่าข้อผิดพลาดดังกล่าวสามารถเกิดขึ้นได้
BuZZ-dEE

1
สิ่งนี้ได้ผลสำหรับฉันขอบคุณ! แท็กเวอร์ชันไม่สามารถแก้ไขได้ (ฉันเปลี่ยนให้ตรงกับเวอร์ชัน Maven ของฉัน) ดังนั้นฉันจึงแสดงความคิดเห็น ผมเชื่อว่า Maven ควรดึงข้อมูลรุ่นล่าสุดที่ถูกต้องในกรณีที่ขึ้นอยู่กับหัวข้อนี้โดยอัตโนมัติ: stackoverflow.com/questions/17239394/...
บอริส

84

วิธีที่เร็วที่สุดที่ฉันพบ:

  • กด: CTRL+ SHIFT+ A(สำหรับ Mac + SHIFT+ A)
  • พิมพ์: java compiler
  • กด: ENTER

ในหน้าต่างการตั้งค่าตั้งค่า Target bytecode เป็น1.8

(หรือ9สำหรับ java9)


3
สิ่งนี้ใช้งานได้ดีสำหรับฉัน (ขอบคุณ!) แต่ฉันไม่เข้าใจว่าทำไมถึงแตกต่างจาก pom.xml การตั้งค่าโมดูล ฯลฯ ...
Adam Lehenbauer

1
กด⌘เพื่อรับการตั้งค่า
X. Wang


18

คำตอบมากมายเกี่ยวกับ Maven นั้นถูกต้อง แต่คุณไม่จำเป็นต้องกำหนดค่าปลั๊กอินโดยตรง

เช่นเดียวกับที่อธิบายไว้ในหน้า wikiของ Apache Maven Compiler Plugin คุณสามารถตั้งค่าคุณสมบัติ 2 อย่างที่ใช้โดยปลั๊กอิน

<project>
  [...]
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  [...]
</project>

1
@ Marvin Richter ฉันลองใช้วิธีแก้ปัญหาของคุณแล้ว แต่มันไม่ทำงานกับ IntelliJ - ฉันเดาว่ามันถูกต้องในการสร้าง maven บริสุทธิ์ (command-line) แต่ IntelliJ ก็เพิกเฉยต่อคุณสมบัติเหล่านี้ ฉันต้องกำหนดค่าปลั๊กอินดังกล่าวในโซลูชันอื่น ๆ
เบอนัวต์

1
ไม่ฉันไม่ได้เพราะโซลูชันอื่น ๆ ใช้งานได้ และตอนนี้ฉันย้ายโครงการของฉันเพื่อไล่ระดับ
เบอนัวต์

4
ทำงานเหมือนมีเสน่ห์หลังจากคุณคลิกขวาที่ pom.xml -> Maven -> นำเข้าใหม่ นี่ควรเป็นคำตอบที่ยอมรับสำหรับผู้ใช้ Maven
ptkvsk

คุณต้องการปลั๊กอินorg.apache.maven.plugins:maven-compiler-pluginในไฟล์ pom หรือ gradle ของคุณสิ่งที่ในเอกสารที่ตั้งใจจะกล่าวคือการมีคุณสมบัติที่ตั้งค่าไว้ในคุณสมบัติ pom จะเพียงพอโดยทั่วไปเนื่องจากพวกเขาตั้งค่าเริ่มต้นของปลั๊กอินเช่น <source> $ { maven.compiler.source} </source>
EliuX

นี่ควรเป็นคำตอบที่ยอมรับได้ ทำงานให้ฉันใน IntelliJ 2018.2 บน mac os 10.13.5
674669

13

ฉันคงนี้โดยไปที่โครงสร้างโครงการ -> โมดูลหาโมดูลในคำถามคลิกที่พึ่งพาแท็บการเปลี่ยนแปลงไปModule SDKProject SDK


9

ฉันแก้ไขมันโดยการเปลี่ยนเวอร์ชั่นคอมไพล์เป้าหมายเป็น 1.8 มันใน:

ไฟล์ >> การตั้งค่า >> สร้างการดำเนินการปรับใช้ >> คอมไพเลอร์ >> Java คอมไพเลอร์


1
ขอบคุณ Vishal เราต้องระบุเวอร์ชัน bytecode ของโครงการหรืออย่างน้อยต่อโมดูล bytecode รุ่นด้วย Intellij Idea เพียงตั้งค่าใน pom.xml สำหรับ maven-compiler-plugin ไม่ได้แก้ปัญหาให้ฉัน
ดูแลเว็บ


5

ในกรณีของฉันฉันแก้ไขปัญหานี้โดยเปิดไฟล์. imgของโครงการ (อยู่ในโฟลเดอร์ root ของโครงการและมีชื่อเหมือนกับชื่อของโครงการ) และเปลี่ยนบรรทัด<orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" />เป็น<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />

ฉันได้รับการกำหนดค่าทุกอย่างเหมือนที่คนอื่น ๆ ตอบไว้ที่นี่ แต่ด้วยเหตุผลบางอย่างที่ Idea อัพเดทไฟล์. iml ไม่ถูกต้อง


2
ดูเหมือนว่าบางครั้ง Intellij จะไม่อัปเดตไฟล์กำหนดค่าแม้ในขณะที่คุณกำหนดค่าเมนูทั้งหมด ทำให้แคชใช้งานไม่ได้และเริ่มต้นใหม่ (หลังจากแก้ไขไฟล์กำหนดค่า) ทำเคล็ดลับสำหรับฉัน แปลก.
jah

1
ขอบคุณมาก. ในที่สุดหลังจากที่พยายามและล้มเหลวทุกโซลูชันอื่น ๆ ที่ระบุข้างต้นนี้ได้ผล
Nitin Bansal

4

ฉันแก้ไขโดยแก้ไขไฟล์ POM ของฉัน สังเกตเห็นความคิดเห็นล่าสุดภายใต้คำตอบที่โหวตสูงสุด

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <encoding>UTF-8</encoding>
        </configuration>
</plugin>

แหล่งที่มาจะต้องตรงกับเป้าหมาย


4

ฉันเพิ่งอิมพอร์ตปุ่ม maven อีกครั้งจากนั้นข้อผิดพลาดก็หายไป

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


ขอบคุณ คำใบ้นั้นทำให้
Veilchen4ever

3

หากคุณทำงานกับ Android-studio 1.3 ให้ทำตามขั้นตอนด้านล่าง -

ไปที่ไฟล์ - โครงสร้างโครงการ

ภายใต้โมดูล - แอ - แท็บคุณสมบัติเลือก แหล่งที่เข้ากันได้ - 1.8 และ

เป้าหมายความเข้ากันได้ - 1.8 1.8

และคุณจะไปดี


3

ในไฟล์ระดับแอป Gradle >> compileOptions ของคุณเพิ่มสองบรรทัดนี้

android {
  compileOptions {
    ...
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    ...
   }
}

ขอบคุณชาย คำตอบของคุณใช้งานได้
Solution Spirit

1

ภายใต้ไฟล์ compiler.xml คุณจะพบ:

<bytecodeTargetLevel>
  <module name="your_project_name_main" target="1.8" />
  <module name="your_project_name_test" target="1.8" />
</bytecodeTargetLevel>

และคุณสามารถเปลี่ยนค่าเป้าหมายจากเดิมเป็นใหม่สำหรับฉันฉันต้องการเปลี่ยนจาก 1.5 เป็น 1.8


1

ฉันเพิ่งใช้เวลาในการดิ้นรนกับปัญหาเดียวกัน สิ่งเดียวที่ใช้ได้ผลสำหรับฉันคือไม่ได้ใช้ mvn ที่สร้างขึ้น (3.3.9) แต่ชี้ไปที่เวอร์ชันดาวน์โหลดภายนอก (3.5.0) ในที่สุดโครงการก็เปิดออกและทุกอย่างก็ดี


1

ปัญหานี้เกิดขึ้นหากโมดูลของคุณได้รับการกำหนดค่าด้วยตัวประมวลผลคำอธิบายประกอบและโมดูลอื่นไม่ได้ตั้งค่าการกำหนดค่าเดียวกันสำหรับโมดูลทั้งหมดตามที่มันจะเป็นแบบพึ่งพาวงจร


0

สำหรับฉันปัญหาเกี่ยวกับ Maven ไม่สามารถค้นหาการกำหนดค่าที่เหมาะสมเนื่องจากรายการเหล่านี้มีการระบุไว้ใน pom ผู้ปกครอง

การเปลี่ยนไฟล์ -> การตั้งค่า -> Build, Excecution, Deployment -> Maven -> ไฟล์การตั้งค่าผู้ใช้เพื่อชี้ไปที่การตั้งค่าแบบกำหนดเองของฉันพร้อมกับที่เก็บที่เหมาะสมแก้ไขปัญหาที่ซ่อนอยู่

ค้นพบเกี่ยวกับปัญหาผ่านวิธีใช้ -> แสดงบันทึกใน explorer -> คลิกไฟล์บันทึกเมื่อก่อนหน้านี้มีข้อผิดพลาดในชื่อและ "java.lang.NullPointerException" ในคอนโซล


0

การแก้ปัญหานั้นง่ายมากคุณต้องเปิดไฟล์. aide / compiler.xmlบนİdea Project และ

คุณควรเขียนเวอร์ชันเป้าหมายที่เหมาะสม


0

ด้วยIntellijโดยใช้Mavenคุณต้องตรวจสอบว่า Intellij นำเข้าโครงการของคุณโดยอัตโนมัติ คุณสามารถตรวจสอบได้โดยคลิกที่แท็บ Maven ทางด้านขวาของเครื่องมือแก้ไข

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

หากโครงการของคุณไม่ได้อยู่ที่นี่ให้เพิ่มpom.xmlไฟล์โดยคลิกที่+ไฟล์โดยคลิกที่

เห็นได้ชัดว่าโครงการจะต้องมีความเกี่ยวข้อง<build/>:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>

0

หากไม่มีคำตอบอื่นใดให้ตรวจสอบ Module SDK ของคุณคุณ

ฉันมีข้อผิดพลาดนี้ปรากฏขึ้นสำหรับฉันหลังจากที่ฉันได้อัปเดต SDK โครงการเป็น 1.8 คอมไพเลอร์ Javac เป็น 1.8 เป็นต้นการตั้งค่าที่เป็นปัญหาสำหรับฉันคือ "Module SDK"

(บน Linux) ไปFile > Project Structure...แล้วในหน้าต่างที่เปิดขึ้นให้เลือกภายใต้Modules Project Settingsเลือกโมดูลที่เป็นปัญหาจากรายการจากนั้นDependenciesแท็บและตรวจสอบให้แน่ใจว่าModule SDKได้ตั้งค่าอย่างเหมาะสม


0

ฉันตรวจสอบทั้งหมดข้างต้นแล้ว แต่ข้อผิดพลาดยังคงเกิดขึ้น

แต่นำเข้าโครงการ Maven ทั้งหมดอีกครั้ง (ปุ่มโหลดใหม่ภายในแผง Maven Projects) ทำงานในกรณีของฉัน


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