โปรเจ็กต์ Java ใน Eclipse: ชนิด java.lang.Object ไม่สามารถแก้ไขได้ มันถูกอ้างอิงทางอ้อมจากไฟล์. class ที่ต้องการ


209

ฉันได้รับข้อผิดพลาดต่อไปนี้หลังจากนำเข้าโครงการใน Eclipse:

ประเภท java.lang.Object ไม่สามารถแก้ไขได้ มันถูกอ้างอิงทางอ้อมจากไฟล์. class ที่ต้องการ

แต่ผมได้กำหนดเส้นทางเป็นC: \ Program Files \ Java \ jdk1.6.0_41ใน Eclipse เคปเลอร์ผ่านJREs หน้าต่าง» Preferences » Java »ติดตั้ง


ฉันทำ "คัดลอกโครงการ" และข้อผิดพลาดหายไป
Srinath Ganesh

พฤติกรรมยังคงเกิดขึ้นใน Luna Service Release 2 (4.4.2) วิธีแก้ไขที่นี่ยังสามารถแก้ไขปัญหาได้
phobic

คำตอบ:


243

นี่เป็นข้อผิดพลาด Eclipse ที่น่ารำคาญซึ่งดูเหมือนว่าจะกัดในตอนนี้ ดูhttp://dev-answers.blogspot.de/2009/06/eclipse-build-errors-javalangobject.htmlสำหรับวิธีแก้ไขที่เป็นไปได้มิฉะนั้นลองทำสิ่งต่อไปนี้

  • ปิดโครงการและเปิดใหม่

  • ทำความสะอาดโปรเจ็กต์ (มันจะสร้าง buildpath ใหม่อีกครั้งด้วยการตั้งค่าใหม่กับไลบรารี JDK)

    หรือ

  • ลบและนำเข้าโครงการอีกครั้งและหากจำเป็นให้ทำตามขั้นตอนข้างต้นอีกครั้ง

วิธีรักษาที่ดีกว่าคือลองใช้ NetBeans แทน Eclipse :-)


4
กันที่นี่ บั๊กที่แปลกประหลาด Eclipse ลิงก์บอกว่าให้ลบไลบรารี JRE จาก classpath ของโปรเจ็กต์และเพิ่มใหม่อีกครั้งเพื่อแก้ไขปัญหา
เฟลิเป้เลโอ

โอ้โลกที่ไม่มีสัญญากับ IBM
Zibbobz

1
ฉันมีข้อผิดพลาดในโครงการ Android สำหรับฉันคลิกที่เครื่องมือ Android -> แก้ไขคุณสมบัติโครงการแก้ไข
Lorenz

@Zibbobz ทำไมเราถึงต้องทำสัญญากับ IBM ฉันยังคงไม่สามารถแก้ไขได้ด้วย IBM Java
อานันท์

ฉันสงสัยว่าสิ่งนี้เกี่ยวข้องกับเมื่อคุณเปลี่ยนตัวแปรสภาพแวดล้อม JAVA_HOME หรือไม่ ฉันเปลี่ยนตัวแปร JAVA_HOME แล้วสิ่งนี้ก็โผล่ขึ้นมา ฉันเพิ่งลบ / อ่านไลบรารี JRE
2124871

221

ขั้นตอนต่อไปนี้สามารถช่วยได้:

  1. คลิกขวาที่โครงการ»คุณสมบัติ» Java Build Path
  2. เลือกแท็บไลบรารี
  3. ค้นหาไลบรารี JRE System และลบออก
  4. คลิกปุ่มเพิ่มไลบรารี ...ที่ด้านขวา»เพิ่มไลบรารีระบบ JRE (ค่าเริ่มต้นพื้นที่ทำงาน JRE)

4
ในกรณีของฉันมันเกิดขึ้นเพราะฉันลบ JRE โดยไม่ได้ตั้งใจในขณะที่นำเข้าโครงการ [ความผิดของฉัน] สิ่งนี้ทำให้ฉันมีเงื่อนงำในการแก้ไขปัญหา
GayashanNA

ในกรณีของฉันมันไม่มีอยู่เลยดังนั้นฉันจึงเพิ่มมัน
Muhammed Refaat

1
แม้ว่าสิ่งนี้จะทำงานได้ในกรณีของฉันแก้ไขข้อผิดพลาด 8 ข้อ แต่ให้อีก 33 ข้อกับฉัน!
Harsh Phoujdar

10

นี่คือวิธีที่ฉันแก้ไขมัน: ใน Java-ADT: Windows - การกำหนดค่าตามความชอบ - Java - JRE ที่ติดตั้งเพียงเพิ่ม JRE อีกอันชี้ไปที่โฟลเดอร์ 'jre' ใต้โฟลเดอร์ JDK ของคุณ (jre รวมอยู่ใน jdk) ตรวจสอบให้แน่ใจว่าคุณเลือก jre ใหม่


10

สิ่งนี้เกิดขึ้นกับฉันเมื่อฉันนำเข้าโครงการ Java 1.8 จาก Eclipse Luna ลงใน Eclipse Kepler

  1. คลิกขวาที่โครงการ> สร้างเส้นทาง> กำหนดค่าเส้นทางสร้าง ...
  2. เลือกแท็บไลบรารีคุณควรเห็น Java 1.8 jre พร้อมข้อผิดพลาด
  3. เลือก java 1.8 jre และคลิกปุ่มลบ
  4. เพิ่ม Library ... > JRE System Library> ถัดไป> ค่าดีฟอลต์ของเวิร์กสเปซ> เสร็จสิ้น
  5. คลิกตกลงเพื่อปิดหน้าต่างคุณสมบัติ
  6. ไปที่เมนูโครงการ> ล้าง ... > ตกลง

และvoilàที่ทำงานสำหรับฉัน


7

คลาสอ็อบเจ็กต์เป็นคลาสพื้นฐานสำหรับคลาสทั้งหมดใน java หากคุณขาดสิ่งนี้หมายความว่าคุณไม่มี jdk libs ใน buildpath ของคุณ ฉันไม่ค่อยรู้อะไรเกี่ยวกับเคปเลอร์ แต่คุณต้องแน่ใจว่าชี้ไปที่ jdk ที่ถูกต้องสำหรับการรวบรวมและ jre ที่ถูกต้องสำหรับการเรียกใช้แอปจาวาของคุณ

อย่างไรก็ตามฉันได้กำหนดเส้นทางเป็น C: \ Program Files \ Java \ jdk1.6.0_41 จาก eclipse Kepler toolbar-> windows-> preferences-> java-> jre ที่ติดตั้ง

คุณกำลังพยายามชี้ jdk แทน jre ในค่ากำหนดของคุณ toolbar-> windows-> preferences-> java-> jre ที่ติดตั้งควรชี้ไปที่ jre และไม่ใช่ jdk


ฉันได้ลองกับมันเช่นกัน แต่ยังอยู่ในสถานะข้อผิดพลาดเดียวกัน
บลูไดมอนด์

4

ไม่มีคำตอบอื่นใดที่เหมาะกับฉัน แต่การทำเช่นนี้ทำให้:

  1. คลิกขวาที่โปรเจ็กต์ใน package explorer
  2. แหล่งที่มา> ล้าง ...
  3. ถัดไป> เสร็จสิ้น

เมื่อฉันทำ Eclipse นี้เพิ่มการนำเข้าเป็นหนึ่งในชั้นเรียนของฉัน ฉันคิดว่าสิ่งนี้เกิดขึ้นเพราะฉันบันทึกโครงการของฉันด้วยการนำเข้าที่ขาดหายไปอาจรีบกลับบ้านหลังเลิกงาน


ขอบคุณ .. มันทำงาน .. โปรดอธิบายฉันว่ามันทำงานอย่างไร?
Singh Arjun

@SinghArjun ฉันไม่แน่ใจ แต่ฉันคิดว่าสิ่งนี้จะเกิดขึ้นเมื่อบันทึกโครงการด้วยการนำเข้าที่ขาดหายไป
Jack Pettinger

4

คุณได้ติดตั้ง JRE เวอร์ชันอื่นหลังจากนั้นในขณะที่ใช้ JRE เวอร์ชันก่อนหน้าใน Eclipse

ถ้าไม่เกิน:

  1. คลิกขวาที่โปรเจคของคุณ -> Build Path -> Configure Build Path
  2. ไปที่แท็บ 'ห้องสมุด'
  3. เพิ่มไลบรารี -> ไลบรารีระบบ JRE -> ถัดไป -> พื้นที่ทำงานดีฟอลต์ JRE (หรือคุณสามารถเลือก JRE สำรองจากระบบของคุณ) -> เสร็จสิ้น

ถ้าใช่กว่า

  1. คลิกขวาที่โปรเจคของคุณ -> Build Path -> Configure Build Path
  2. ไปที่แท็บ 'ห้องสมุด'
  3. ลบรุ่นก่อนหน้า
  4. เพิ่มไลบรารี่ -> JRE System Library -> ถัดไป -> ดีฟอลต์เวิร์กสเปซ JRE (หรือคุณสามารถเลือก JRE สำรองจากระบบของคุณ) -> เสร็จสิ้น

4

ไม่มีการทำความสะอาดปิด / เปิดโครงการ & IDE อีกครั้งการลบ / เพิ่ม JRE ในเส้นทางการสร้างทำงานได้สำหรับฉัน

วิธีแก้ปัญหาที่ฉันพบคือการลบโครงการออกจาก Eclipse (ไม่ใช่จากดิสก์) ลบไฟล์ Eclipse ของโครงการออกจากดิสก์และนำเข้าสู่ Eclipse อีกครั้ง ที่ได้ผล

มันเร็วยิ่งขึ้นหากคุณใช้ Maven:

  1. ปิด Eclipse (ไม่จำเป็นต้องลบโครงการ)
  2. วิ่ง mvn clean eclipse:clean eclipse:eclipse
  3. เปิด Eclipse โครงการของคุณยังคงมีอยู่และปัญหาควรจะหมดไป

3

ปัญหาอื่นอาจเป็นไปได้ว่าไม่ได้ตั้งค่าเป้าหมายการสร้างโครงการ Android

  1. คลิกขวาที่โครงการ
  2. เลือกคุณสมบัติ
  3. คลิก Android
  4. ทำเครื่องหมายเป้าหมายการสร้างโครงการที่เหมาะสม
  5. ใช้ ตกลง

3

คลิกขวาที่โปรเจ็กต์ -> แสดงในนาวิเกเตอร์ในมุมมองเนวิเกเตอร์คุณสามารถเห็นไฟล์. classpath ให้ลบไฟล์นี้และสร้างโครงการ สิ่งนี้ใช้ได้สำหรับฉัน PS หากคุณรวมโครงการ eclipse ของคุณเข้ากับการควบคุมเวอร์ชันบางอย่างเช่น perfoce / svn ให้ยกเลิกการเชื่อมโยงโครงการก่อนที่คุณจะลบ. class class จะเป็นประโยชน์


2

ฉันประสบปัญหานี้ด้วยแอปพลิเคชัน play-java บน eclipse หลังจากเพิ่มตัวควบคุมฉันลบและติดตั้ง JRE ใหม่อีกครั้งผ่านเส้นทางการสร้างแล้วนำออกและนำเข้าโครงการของฉันซึ่งแก้ไขปัญหานี้โดยอัตโนมัติ ขอบคุณไจโร


นี่เป็นคำตอบเดียวกับ Ripon Al Wasim ใช่ไหม
Nicolas Raoul

2

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


2

สิ่งที่แก้ไขปัญหาของฉันคือ

1) ติดตั้ง jdk ภายใต้ไดเรกทอรีโดยไม่มีช่องว่าง:

C:/Java

แทน

C:/Program Files/Java

นี่เป็นปัญหาที่ทราบใน Windows ฉันคงที่JAVA_HOMEเช่นกัน

2) ฉัน java 7 และ java 8 บนแล็ปท็อปของฉัน ดังนั้นผมจึงกำหนด JVM eclipse.iniโดยใช้ นี้ไม่ได้เป็นขั้นตอนบังคับถ้าคุณไม่ได้มีรายการในของคุณ-vm eclipse.iniฉันอัปเดต:

C:/Java/jdk1.7.0_79/jre/bin/javaw.exe

แทน:

C:/Java/jdk1.7.0_79/bin/javaw.exe

โชคดี


1

ฉันมีปัญหาเดียวกันในหน้าต่าง eclipse ที่ฉันไม่สามารถเพิ่มไฟล์. class แบบพึ่งพาจาก JNI ได้ ในการแก้ปัญหาเดียวกันฉันพอร์ตรหัสทั้งหมดเพื่อ NetBeans IDE

ไม่สามารถเพิ่มไฟล์คลาสทั้งหมดจากโฟลเดอร์ JNI / JNA ใน Eclipse (JAVA, Windows 7)


ลงคะแนนทำไม? ดูฉันได้ลองวิธีแก้ปัญหาที่เป็นไปได้ทั้งหมดแล้วยังไม่สามารถแก้ไขปัญหาได้จากนั้นฉันย้ายรหัสไปยัง NetBeans ฉันตอบคำถามนี้เพราะหากใครติดขัดในกรณีที่แย่ที่สุด s (เขา) อาจได้รับความช่วยเหลือ
Jyo the Whiff

คุณอาจจะถูก แต่สำหรับฉัน JNI / JNA ทำงานได้ดี (สำหรับ eclipse - 4.9.0) หลังจากลบไลบรารีที่มีอยู่และตั้งค่าไลบรารี jre เริ่มต้นปิดโครงการเปิดโครงการ
Ajay Kumar

1

ในขณะที่เรากำลังทำงานกับรุ่น Tomcat 6 และ jdk 1.8 คุณสมบัติบางอย่างจะไม่ทำงานและข้อผิดพลาดที่คุณได้รับคือ คุณต้องเปลี่ยนเวอร์ชัน jdk เป็นเวอร์ชันเสถียร (ดีกว่า jdk 1.6 หรือ jdk 1.8_65) ใน eclipse เพื่อแก้ไขข้อผิดพลาดนี้

ใน eclipse ขั้นตอนที่ 1: คุณสมบัติ -> เส้นทางการสร้าง Java -> ไลบรารีระบบ jre (ลบ) ขั้นตอนที่ 2: เพิ่ม -> ไลบรารีระบบ jre -> ทางเลือก jre -> ติดตั้ง jre -> เพิ่ม -> มาตรฐาน VM -> (ในบ้าน jre วางเส้นทาง jdk) -> เสร็จสิ้น

ตอนนี้ทำความสะอาดและตรวจสอบโครงการ


1

ฉันได้รับข้อผิดพลาดนี้เพราะฉันได้ติดตั้ง "Eclipse IDE สำหรับ Enterprise Java Developers" ฉันถอนการติดตั้งและติดตั้ง "Eclipse IDE สำหรับ Java Developers" แก้ไขปัญหาให้ฉันแล้ว


0

เกิดขึ้นกับฉันหลังจากฉันติดตั้งอัปเดตบางอย่างใน eclipse แต่ลืมรีสตาร์ทในภายหลัง ดังนั้นการรีสตาร์ทคราสอาจช่วยได้


ฉันพยายามทำสิ่งนั้น แต่ฉันยังไม่ได้รับอนุญาตให้เขียนความคิดเห็น
NotX

0

อย่างไรก็ตามเรื่องเล็กน้อยนี้อาจเป็นไปได้ตรวจสอบการติดตั้ง Java ของคุณ สำหรับฉันแล้วrt.jar หายไปที่ขาดหายไป

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

Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

ฉันไม่รู้ว่าเกิดอะไรขึ้นกับการติดตั้ง Java และ rt.jar ไปไหน อย่างไรก็ตามสิ่งนี้มาเป็นเครื่องเตือนให้ทำตามรายการตรวจสอบที่ล้มเหลวและทำเครื่องหมายทุกช่องไม่ว่าพวกเขาจะไม่น่าเชื่อ มันช่วยให้ฉันประหยัดเวลาได้มาก


0

มันทำงานสำหรับฉันหลังจากยกเลิกการเลือก 'ผู้ใช้' - ตัวเลือก releae 'ใน eclipse Java-compiler

ใน eclipse ขั้นตอนที่ 1: คุณสมบัติ -> ตัวเลือก Java Complier -> ตัวเลือก uchecking 'ผู้ใช้' - ตัวเลือก rraeae '-> เสร็จสิ้น

Java เวอร์ชัน 13.0.1 เวอร์ชัน Eclipse: Eclipse IDE สำหรับ Enterprise Java Developers


0

คลิกขวาที่โครงการเลือก Maven -> อัปเดตโครงการ ที่ควรแก้ปัญหา


doing eclipse -> maven -> update ควรเป็นหนึ่งในขั้นตอนขณะแก้ไขปัญหา
Vaibs

0

ในกรณีของฉันมันเป็นโครงการโมดูลาร์ขนาดใหญ่และ ' red X ' แสดงในโครงการหลักเท่านั้น ฉันไปที่โครงการแม่

คุณสมบัติ -> พา ธ ที่สร้างขึ้น

ลบไลบรารี JRE ที่นั่นออกแล้วไม่มีห้องสมุด JRE ในโปรเจ็กต์หลักอีกต่อไป


0

ไม่มีวิธีแก้ปัญหาเหล่านี้สำหรับฉัน ในกรณีของฉันปัญหาคือว่าฉันมี.javaไฟล์จาวาโค้ดบางไฟล์และฉันบังเอิญสร้างไฟล์ชื่อClass.java(เนื้อหาดูเหมือนจะไม่สำคัญ) การลบไฟล์ช่วยแก้ไขปัญหา

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