ข้อผิดพลาด Eclipse:“ การนำเข้า XXX ไม่สามารถแก้ไขได้”


135

ฉันกำลังพยายามทำงานกับ Hibernate ใน Eclipse ฉันกำลังสร้างโครงการง่ายๆใหม่และฉันได้ดาวน์โหลดโครงการเพื่อนร่วมงานด้วย CVS ทั้งสองไม่ทำงานในขณะที่ใน Eclipse ของเพื่อนร่วมงานของฉันทำ ปัญหาคือว่าสำหรับการนำเข้าคลาส Hibernate แต่ละครั้ง Eclipse พูดว่า:

The import org.hibernate cannot be resolved

แต่ขวดไฮเบอร์เนตทั้งหมดอยู่ในเส้นทางการสร้างนั่นคือ:

antlr-2.7.6.jar
cglib-2.2.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
hibernate3.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
javassist-3.12.0.GA.jar
jta-1.1.jar
slf4j-api-1.6.1.jar

1
คุณเพิ่ม jar เหล่านี้ในเส้นทางการสร้างของคุณได้อย่างไร
Jigar Joshi

3
ตามคุณสมบัติ> เส้นทาง Java Build> ไลบรารี> เพิ่ม JAR ภายนอก
สีน้ำเงิน


1
ถ้ามันทำงานและพวกเขาทำไม่ได้ตอนนี้ดู @dogbane 's คำตอบด้านล่าง ...
Shanimal

ตรวจสอบว่ามีที่ว่างในโฟลเดอร์การนำเข้าของคุณหรือไม่ หากมีช่องว่างให้ลบช่องว่างและนำเข้าโครงการไปยัง eclipse
schin chan

คำตอบ:


283

ลองทำความสะอาดโครงการของคุณโดยไปที่รายการเมนูต่อไปนี้:

Project > Clean...

หากวิธีนี้ไม่ได้ผลให้ลองลบไหออกจากเส้นทางการสร้างและเพิ่มใหม่อีกครั้ง


5
อาจเป็นปัญหา JRE ลองเลือก "Alternate JRE" ในคุณสมบัติโครงการ
dogbane

10
ทำความสะอาดก็ใช้ได้สำหรับฉัน จะเกิดอะไรขึ้นอย่างแน่นอน (ทุกอย่างเป็นบ้าไปหมดในทันที) และ Clean ช่วยได้อย่างไร
Saber Runner

1
การแก้ไขปัญหาสำหรับฉันเช่นกัน; ไม่ใช่โครงการไฮเบอร์เนต แต่เป็นlibGdxเรียกการเรียกใช้ java ของฉันไม่ใช่ไห เช่นเดียวกันกับ @SabreRunner และมีข้อผิดพลาดบางอย่างในเครื่องมือด้านสิ่งแวดล้อมหรือไม่?
Zac

3
ทำงานให้ฉันด้วย มันน่าผิดหวังสุด ๆ เมื่อเมนูความช่วยเหลือตามบริบทกำลังค้นหาชั้นเรียนและมือของคุณพิมพ์การนำเข้าเดียวกันเหนือรายการที่ทำเครื่องหมายว่า "ไม่สามารถแก้ไขได้" และไม่มีข้อผิดพลาด ...
Shanimal

1
วิธีนี้ไม่ได้ช่วยในกรณีของฉัน เวอร์ชัน Eclipse ของฉันคือ: Neon.3 Release (4.6.3)
Timothy.Li

27

เห็นได้ชัดว่ามีบางกรณีที่มีปัญหาที่ถูกต้อง แต่ Eclipse พ่นข้อผิดพลาดนี้โดยไม่มีเหตุผลที่ดีในบางครั้ง

สิ่งนี้ยัง (2019-03) เป็นข้อผิดพลาด Eclipse เก่า (2010) ที่สามารถแก้ไขได้โดยทำการเปลี่ยนแปลงเล็กน้อยในการตั้งค่าโครงการ

การตั้งค่าที่ฉันเลือกที่จะเปลี่ยนแปลงคือ: โครงการ> คุณสมบัติ> Java Build Path> คำสั่งซื้อและการส่งออก> ทำการเปลี่ยนแปลงคำสั่งที่ไม่มีความหมาย> นำไปใช้

การเปลี่ยนคำสั่งซื้อกลับไม่ทำให้เกิดปัญหาอีกต่อไป เพียงแตะที่ไฟล์อาจแก้ไขปัญหาได้ (ฉันจะทดสอบการสัมผัสในครั้งถัดไป)


1
ไฟล์> คุณสมบัติควรเปลี่ยนเป็นโครงการ> คุณสมบัติ
Timothy.Li

วิธีนี้ไม่ได้ช่วยในกรณีของฉัน เวอร์ชัน Eclipse ของฉันคือ: Neon.3 Release (4.6.3)
Timothy.Li

สำหรับฉันไลบรารีระบบ JRE จะต้องอยู่เหนือ Maven Dependencies ในแท็บการสั่งซื้อและส่งออกเส้นทางสร้าง
Anthony Hayward

2
บั๊กนี้มีอายุอย่างน้อย 9 ปี
user1133275

ยังคงอยู่ที่นั่น พ.ย. 2019 Sheesh
Tullochgorum

22

ทำความสะอาดโครงการ และตรวจสอบขวดที่อยู่บนพา ธ บิลด์ (โดยไม่มีข้อผิดพลาด) ตรวจสอบให้แน่ใจว่าไม่มีสิ่งใดในมุมมอง "ปัญหา"


ฉันลองอีกครั้งแล้วครั้งละครั้ง: ด้วยไหแต่ละใบ, ภายในห้องสมุด, ... ดูเหมือนว่าจะเป็นข้อผิดพลาดแปลก ๆ !
สีน้ำเงิน

1
คุณมีอะไรในมุมมองปัญหาหรือไม่
Bozho

เฉพาะปัญหาที่ฉันบอกและคำเตือนของประเภท "Azienda คลาสที่ serializable ไม่ได้ประกาศฟิลด์ serialVersionUID สุดท้ายของแบบคงที่ยาวประเภท"
สีน้ำเงิน

18

ฉันพบปัญหา มันเป็นไฮเบอร์เนต 3.jar ผมไม่ทราบว่าทำไมมันไม่ได้ถูกสกัดอย่างดีจาก .zip อาจจะเสียหาย วิธีที่ดีในการตรวจสอบว่าขวดเสียหายหรือไม่ผ่านโครงสร้างต้นไม้ใน "Project Explorer" ใน Eclipse: หากคุณไม่สามารถขยายโหนด jar อาจเป็นไปได้ว่าเกิดความเสียหาย ฉันเคยเห็นว่ามีแพ็คเกจที่เสียหายบ่อยครั้งเมื่อคุณลากและวางไปยัง "Project Explorer" อาจจะเป็นการดีกว่าถ้าจะย้ายและคัดลอกมันในระบบปฏิบัติการ! ขอบคุณทุกคน.


17

ถ้าเป็นโครงการ Maven ให้คลิกที่Maven >> อัปเดตโครงการ ... (F5)

อัพเดทโครงการ Maven


หากคุณนำเข้าโครงการ Maven เป็น "Java project" ปัญหานี้จะเกิดขึ้น แปลงโปรเจ็กต์เป็นโครงการ Maven และอัปเดตตามที่คุณพูดแล้วปัญหาจะหายไป
kodmanyagha


8
  1. โครงการที่สะอาดโครงการ -> ทำความสะอาด ...
  2. คลิกขวาที่โครงการ -> BuildPath -> กำหนดค่า BuildPath -> แท็บไลบรารี ->

ดับเบิลคลิกที่ JRE SYSTEM LIBRARY -> จากนั้นเลือก JRE สำรอง


6

ฉันมีปัญหาว่า classpath นั้นขาดไป

คลิกขวาที่โปรเจ็กต์ใน Package explorer> เครื่องมือปลั๊กอิน> อัปเดตพา ธ คลาส ... ทำเพื่อฉัน


ใน Neon.3 Release (4.6.3) ไม่มีเครื่องมือ Plug-in ในเมนูตามบริบทโดยคลิกขวาที่โครงการใน Package explorer
Timothy.Li

6

ฉันแก้ไขปัญหานี้ได้ด้วยการอัปเดตโครงการ: คลิกขวาที่โครงการ Maven เลือก Maven -> อัปเดตโครงการ -> เลือกช่องทำเครื่องหมายเลือกการอัปเดตแรงของสแนปชอต / รีลีส



3

กับฉันมันช่วยให้การเปลี่ยนแปลงระดับการปฏิบัติตามคอมไพเลอร์ ไม่ทราบด้วยเหตุผลว่าตั้งค่าเป็น 1.6 และฉันเปลี่ยนเป็น 1.8

หนึ่งครั้งที่ระดับโปรเจ็กต์คลิกขวาที่โปรเจ็กต์> คุณสมบัติ> Java Compiler ขณะที่ใน Eclipse คลิกที่เมนูหน้าต่าง> การกำหนดค่าตามความชอบ> Java> คอมไพเลอร์


3

ฉันลองคำตอบทั้งหมดข้างต้น แต่ไม่มีโชค ในกรณีของฉันมีโฟลเดอร์สร้าง / คลาสที่สร้างขึ้นพร้อมกับไฟล์ ".class" เพิ่มเติมบางส่วน ฉันลงเอยด้วยการไปสำรวจแพ็คเกจคลิกขวาที่โปรเจ็กต์และเลือกตัวเลือก "รีเฟรช" และทำให้โฟลเดอร์บิลด์ / คลาสใช้งานได้อีกครั้งเพื่อแก้ไขปัญหา


3

นี่เป็นการแก้ไขปัญหาของฉัน

1) โครงการโครงการที่สะอาด -> ทำความสะอาด ...

2) คลิกขวาที่โครงการ -> BuildPath -> กำหนดค่า BuildPath -> แท็บไลบรารี -> ดับเบิลคลิกที่ JRE SYSTEM LIBRARY -> จากนั้นเลือก JRE สำรอง

3) คลิกบันทึก

4) ไปที่โครงการของคุณอีกครั้งใน project explorer และคลิกขวาที่โครงการ -> BuildPath -> กำหนดค่า BuildPath -> แท็บไลบรารี -> ดับเบิลคลิกที่ JRE SYSTEM LIBRARY -> เวลานี้เลือก "Execution Environment"

5) ใช้


2

ในกรณีของฉันมันเป็นโถที่หักในที่เก็บ Maven ลบไฟล์ jar ในที่เก็บและปล่อยให้ Maven ดาวน์โหลดอีกครั้ง

เมื่อฉันวิ่งmvn clean installจากบรรทัดคำสั่งมันก็ใช้ได้ แต่ Eclipse ยังไม่สามารถรวบรวมรหัสได้ เมื่อฉันวิ่งmaven installใน Eclipse ฉันก็เห็นว่า Maven บ่นเกี่ยวกับไฟล์ jar ที่ไม่ดี ดังนั้นฉันจึงลบมันและวิ่งmaven installอีกครั้ง ปัญหาได้หายไป


2

เพื่อดาวน์โหลดไฟล์ jar ที่ไม่มีอยู่ในไดเร็กทอรี. m2 ของคุณคุณควรรันmvn clean installคำสั่งสำหรับโปรเจ็กต์ pom.xml ของคุณ Alt+F5แล้วคุณควรจะปรับปรุงการอ้างอิงโครงการโดยการคลิกที่ มันใช้งานได้สำหรับฉัน!


2

การลบ "module-info.java" ได้ช่วยแก้ปัญหาให้ฉันด้วย!

ไฟล์นี้สร้างขึ้นโดยอัตโนมัติและปรากฏในลำดับชั้นของฉัน ...


1

ฉันมีปัญหาเดียวกันเพราะฉันเพิ่มขวดที่ฉันสร้างขึ้นซึ่งฉันได้ตั้งไดเรกทอรีฐานบรรจุภัณฑ์อื่นที่ไม่ใช่ไดเรกทอรีฐานของชั้นเรียน เป็นผลให้คลาสเช่นjava.util.Listต้องนำเข้าราวกับว่าการนำเข้าutil.Listที่แนะนำเป็นครั้งแรก

ตรวจสอบไหที่อิมพอร์ตภายใต้ไลบรารีที่อ้างอิงเพื่อดูว่ามีการอิมพอร์ตอย่างถูกต้อง


1

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

คลิกขวาที่โครงการ -> Properties -> Project Facets -> เลือก Java -> Apply


1

เมื่อใดก็ตามที่คุณเจอปัญหานี้ให้ไปที่โครงการ> ล้างแล้วเลือกล้างโครงการทั้งหมด มันควรจะได้รับการแก้ไขมิฉะนั้นพยายามที่จะลบขวดเหล่านั้นและเพิ่มอีกครั้ง สิ่งสุดท้ายคือลองรีสตาร์ท Eclipse


1

pom.xml

หากเป็นโครงการ Maven ให้ไปที่ pom.xml และลบไหการพึ่งพาทั้งหมด บันทึกไว้ โครงการจะสร้างโดยอัตโนมัติ

จากนั้นเพิ่มไหการพึ่งพาอีกครั้ง (คุณสามารถทำได้Ctrl+ Z) บันทึกไว้ โครงการจะสร้างโดยอัตโนมัติและคุณจะไม่เห็นข้อผิดพลาดนั้น


1

ลบการอ้างอิงใน POM.XML ของคุณและดาวน์โหลด jar และเพิ่มใน buildpath

บางครั้ง -> maven จะไม่สะท้อนการเปลี่ยนแปลงใหม่และอาจทำให้เกิดปัญหาเช่นนี้


0

กรุณาลองและตรวจสอบว่า libs ทั้งหมดอยู่ในสถานที่ ฉันมีปัญหาเดียวกัน แต่ฉันแก้ไขมันโดยย้ายโฟลเดอร์ lib และเพิ่มไหทั้งหมดอีกครั้งในเส้นทางการสร้าง


0

ฉันมีปัญหาเดียวกัน ฉันดาวน์โหลด jar และเพิ่มลงในเส้นทางการสร้าง แต่ฉันไม่ได้สังเกตว่าส่วนขยายคือ. jar.zip ฉันแปลงเป็น. jar อีกครั้งและเพิ่มในเส้นทางการสร้าง

มันแก้ไขปัญหาของฉัน มันเป็นความผิดพลาดที่โง่มาก แต่ฉันเขียนไว้ที่นี่เพื่อช่วยคนอื่น


0

หากคุณกำลังทำงานกับ Maven และมีปัญหานี้ให้ตรวจสอบเซิร์ฟเวอร์ที่เก็บ (เช่นเซิร์ฟเวอร์ nexus) หากมีสิ่งประดิษฐ์อยู่ บางครั้งพวกเขาสามารถเปลี่ยนชื่อของสิ่งประดิษฐ์และคุณพยายามที่จะได้รับสิ่งประดิษฐ์ด้วยชื่อเก่า


0

แก้ไขโดยการเชื่อมโยงแหล่งที่มา จาก explorer คลิกขวาที่โปรเจ็กต์เลือกคุณสมบัติเลือก Java Build Path เลือกซอร์สจากแท็บกดปุ่ม "LinkSource" และการระบุโฟลเดอร์ที่จะเพิ่มในโครงการ


0

ฉันไม่สามารถนำเข้าเช่นกัน ใช้เวลาหลายชั่วโมงในการหาว่าฉันพยายามใช้ 1.6 ห้องสมุด / ขวดในขณะที่ฉันพยายามรวบรวม 1.8 เมื่อฉันเปลี่ยนโครงการเป็นใช้ 1.6 ปัญหาการนำเข้าก็หายไป ข้อความผิดพลาดทั้งหมดนำไปสู่ทิศทางที่ผิด ในแหล่งที่มาฉันพบข้อ จำกัด บางประการที่นำไปสู่รุ่น 1.6 และ: ตัวอย่างเช่น. settings และ. classpath (ค้นหาไฟล์) -> org.eclipse.jdt.core.compiler.codegen.targetPlatform = 1.6 สามารถให้คำแนะนำเกี่ยวกับปัญหาดังกล่าว


0

ฉันประสบปัญหาเดียวกันและฉันแก้ไขมันโดยการเอาโถที่เพิ่มเข้ามาสองครั้งในการพึ่งพาที่แตกต่างกันสองครั้งใน pom.xml ของฉัน การเอาการอ้างอิงรายการใดรายการหนึ่งช่วยแก้ไขปัญหาได้


0

สำหรับฉันดูเหมือนว่าฉันกำลังเพิ่มโฟลเดอร์ของไลบรารีผิดระดับ ฉันดาวน์โหลดJericho HTML Parserแล้วทำการคลายซิปออก eclipse-workspace/libraries/jericho-html-3.4/

จากนั้นเมื่อเพิ่มสิ่งนี้เป็นโฟลเดอร์ไลบรารีภายนอกเคล็ดลับคือนำทางไปยังโฟลเดอร์นั้นเน้นโฟลเดอร์ "คลาส" และกดเปิด ก่อนหน้านี้ฉันพยายามเพิ่มทั้งผู้ปกครองและโฟลเดอร์ย่อยหลายระดับและไม่ได้ผล

นี่คือคำอธิบายที่สวยมากที่นี่มันบอกว่า

คุณยังสามารถเพิ่มโฟลเดอร์คลาสไดเร็กทอรีที่มีไฟล์คลาส Java ที่ไม่ได้อยู่ใน JAR

มีสองบทเรียนเรียนรู้ที่นี่สำหรับฉันขอโทษถ้าเป็นนอกหัวข้อ:

  1. อ่านคำแนะนำอย่างระมัดระวัง - ในคำต่อคำ!

  2. อย่ายอมแพ้ - นี่เป็นครั้งแรกที่ฉันเพิ่มห้องสมุดใช้เวลาประมาณสองชั่วโมงในการเพิ่มมัน


0

โซลูชันสำหรับ Eclipse IDE

ในกรณีของฉันฉันคงได้โดยการแก้ไขหนึ่งของทั้งสองไฟล์ที่อาจจะเสียหาย: .classpathหรือ.project

เพื่อซ่อมแซมใด ๆ ของไฟล์ที่เสียหายคุณสามารถคัดลอกจากโครงการอื่นที่มีทั้ง.projectไฟล์หรือ.classpathไฟล์ในคำถามและเป็นที่ปราศจากข้อผิดพลาด แต่อย่าลืมเพิ่มการตั้งค่าเพิ่มเติมที่จะไม่ใช้


0

[การทำงานของCode Igniter frame] [ Import library ]

ลองคลิกขวาที่โครงการในมุมมอง Explorer โครงการเลือกรีเฟรช เครื่องหมายข้อผิดพลาดทุกอย่างหายไปในกรณีของฉันอย่างน่าประหลาดใจ


ฉันไม่เก่ง Eclipse ฉันเริ่มใช้ Android Studio เพื่อพัฒนา Android แต่มันน่ารำคาญที่เห็นเครื่องหมายข้อผิดพลาดสีแดงโฉบตลอดเวลาในขณะที่โครงการทั้งหมดยังทำงานได้ดี เกิดขึ้นกับฉันเมื่อฉันใช้นักแต่งเพลงเพื่อนำเข้าห้องสมุดเช่นนี้

require __DIR__ . '/../../vendor/autoload.php';

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