ตัวแก้ไขไม่มีประเภทหลัก


92

เพิ่งดูโค้ด Scala ตัวอย่างบนเว็บไซต์ Scala แต่พบข้อผิดพลาดที่น่ารำคาญเมื่อพยายามเรียกใช้

นี่คือรหัส: http://www.scala-lang.org/node/45 http://www.scala-lang.org/node/45เมื่อเรียกใช้บน Eclipse ฉันได้รับข้อความนี้ 'Editor ไม่มีประเภทหลัก' ที่ป้องกันไม่ให้ทำงาน

มีอะไรที่ฉันต้องทำ ... เช่นแบ่งไฟล์นั้นออกเป็นหลาย ๆ ไฟล์หรืออะไร?

คำตอบ:


37

ฉันมีปัญหานี้มากกับ Eclipse และ Scala ช่วยได้หากคุณทำความสะอาดพื้นที่ทำงานและสร้างโครงการของคุณใหม่

บางครั้ง Eclipse ก็ไม่รู้จักไฟล์ที่ต้องคอมไพล์ใหม่อย่างถูกต้อง :(

แก้ไข: รหัสทำงานได้ดีใน Eclipse


4
ทำให้ประสบการณ์เดียวกัน บางครั้งการปิดและเปิดโครงการดูเหมือนจะเป็นสิ่งจำเป็นสำหรับฉัน
Fabian Steeg

ขอบคุณ @nuriaion และ @Fabian ใช่การเปิดโครงการอีกครั้งทำให้มันใช้งานได้ ขอบคุณอีกครั้งสำหรับเคล็ดลับ
Helen Neely

3
@Helen In Eclipse => Project => Clean คุณสามารถล้างโปรเจ็กต์ได้การสร้างใหม่จะทำงานโดยอัตโนมัติ ... ดังนั้นคุณไม่จำเป็นต้องปิดและเปิดโปรเจ็กต์อีกครั้ง
nuriaion

การเปิดและปิดโครงการสกาล่าทำให้ฉัน: เกิดข้อผิดพลาดระหว่างการสร้าง เกิดข้อผิดพลาดในการสร้างอินสแตนซ์ตัวสร้าง 'ch.epfl.lamp.sdt.core.scalabuilder' ปลั๊กอิน "ch.epfl.lamp.sdt.core" ไม่สามารถสร้างอินสแตนซ์คลาส "scala.tools.eclipse.Builder" ได้ ไม่สามารถเตรียมใช้งานคลาส scala.tools.eclipse.contribution.weaving.jdt.builderoptions.ScalaJavaBuilder Plug-in "ch.epfl.lamp.sdt.core" ไม่สามารถสร้างอินสแตนซ์คลาส "scala.tools.eclipse.Builder" ได้ ไม่สามารถเริ่มต้นคลาส scala.tools.eclipse.contribution.weaving.jdt.builderoptions.ScalaJavaBuilder
Ustaman Sangat

87

ใน Eclipse ตรวจสอบให้แน่ใจว่าคุณเพิ่มซอร์สโฟลเดอร์ในคุณสมบัติโปรเจ็กต์ -> java build path -> source มิฉะนั้นฟังก์ชัน main () อาจไม่รวมอยู่ในโปรเจ็กต์ของคุณ


โปรดทราบว่าสามารถทำได้โดยการลากและวางไฟล์ลงใน "src" ในมุมมองตัวสำรวจโฟลเดอร์
Max von Hippel

สิ่งนี้ช่วยแก้ปัญหาของฉันได้ แต่หลังจากปิดและเปิดโครงการ
Sayed

26

คุณต้องตรวจสอบให้แน่ใจว่าไฟล์. java ของคุณอยู่ในโฟลเดอร์. src ใน eclipse ฉันมีปัญหาเหมือนกันจนกว่าฉันจะรู้



21

ตรวจสอบให้แน่ใจว่ามีการเพิ่มโฟลเดอร์ที่คุณทำงานในเส้นทางที่สร้างขึ้น:

right-clickโฟลเดอร์ของคุณ -> build Path->Use as source Folder

และตอนนี้ควรจะพบในmainนั้น


6

ผมมีปัญหาเหมือนกัน. ฉันลองมาแล้วทุกประเภท และฉันก็ได้รู้ว่า

  1. ไฟล์. java ของฉันไม่ได้เชื่อมโยงและ
  2. ไม่ได้อยู่ในโฟลเดอร์ "src"

สิ่งที่ฉันทำ:

คุณสมบัติโครงการ >> Java Build Path >> Source

  • ลบโฟลเดอร์ "src" เดิมซึ่งว่างเปล่าโดยใช้ตัวเลือก "ลบ"
  • เพิ่มแหล่งที่มาที่มีไฟล์. java ต้นทางของฉันโดยใช้ตัวเลือก 'เพิ่มโฟลเดอร์'

สิ่งนี้แก้ไขข้อผิดพลาด


5

คุณสามารถลองเรียกใช้ฟังก์ชันหลักจากแถบด้านข้างของ eclipse

วิธีการแก้


เมื่อฉันทำสิ่งนี้ฉันได้รับข้อความแสดงข้อผิดพลาด: <project root> [in Tut_RMI] does not exit. (ชื่อโปรเจ็กต์คือTut_RMI) ชื่อโปรเจ็กต์นี้ไม่ถูกต้องหรือไม่?
Casper

5
***

เพียงแค่ปิดและเปิดใหม่

*** โครงการของคุณในคราส บางครั้งมีปัญหาการเชื่อมโยง สิ่งนี้ช่วยแก้ปัญหาของฉันได้


3

วิธีแก้ปัญหาอย่างรวดเร็ว:

ขั้นแรกไม่รวมแพ็คเกจ: คลิกขวาที่แพ็คเกจต้นทาง >> สร้างเส้นทาง >> ไม่รวม

จากนั้นรวมกลับ: คลิกขวาที่แพ็คเกจต้นทาง >> สร้างเส้นทาง >> รวม


3

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

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


2

รหัสนั้นถูกต้อง คุณพยายามรวบรวมด้วยมือโดยใช้สเกแลคหรือไม่? นอกจากนี้คุณได้เรียกไฟล์ของคุณว่า "addressbook" ตัวพิมพ์เล็กทั้งหมดเช่นชื่อวัตถุหรือไม่

นอกจากนี้ฉันพบว่า Eclipse ด้วยเหตุผลบางประการตั้งค่าคลาสหลักเป็น ".addressbook" แทนที่จะเป็น "addressbook"


ขอบคุณ Daniel ใช่ไฟล์นี้ชื่อ 'addressbook' ตัวพิมพ์เล็กทั้งหมด จะลองเปิดโครงการอีกครั้งเพื่อดูว่าช่วยได้หรือไม่
Helen Neely

2

คุณควรสร้างไฟล์ของคุณโดย

เลือกทางด้านขวาคุณจะพบชื่อไฟล์ของคุณ

ภายใต้นั้นจะพบโฟลเดอร์ src ให้คุณคลิกขวาเลือก -> ตัวเลือกคลาส

ควรสร้างไฟล์ของคุณ


2

ตรวจสอบให้แน่ใจว่าไฟล์. java ของคุณมีอยู่ในแพ็คเกจ str หรือในแพ็คเกจอื่น ๆ หากไฟล์ java ที่มีฟังก์ชันหลักอยู่นอกแพ็กเกจทั้งหมดข้อผิดพลาดนี้จะเกิดขึ้น


2

พบปัญหาที่คล้ายกันนี้แก้ไขได้โดยคลิกขวาที่วิธีการหลักในมุมมองเค้าร่างและเรียกใช้เป็นแอปพลิเคชัน Java


1

ฉันเพิ่งมีปัญหานี้เหมือนกัน วิธีแก้ไขคือตรวจสอบให้แน่ใจว่า eclipse สร้างโปรเจ็กต์เป็นโปรเจ็กต์ Java เพียงสร้างโปรเจ็กต์ Java ใหม่และคัดลอกคลาสของคุณไปยังโฟลเดอร์ src (และนำเข้าการอ้างอิงในที่สุด) สิ่งนี้ควรแก้ไขปัญหาได้


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

1

คำตอบที่ถูกต้องคือไลบรารี Scala ต้องอยู่ก่อนไลบรารี JRE ใน buildpath

ไปที่Java Buildpath> สั่งซื้อและส่งออกและย้ายไลบรารี Scala ไปที่ด้านบน


1

ฉันมีปัญหากับโปรเจ็กต์ Java ที่ฉันอิมพอร์ตจากระบบไฟล์ (ภายใต้ Eclipse Helios) นี่คือคำแนะนำ: ดูเหมือนว่าโค้ด src จะไม่ได้รวบรวมเลยเนื่องจากไม่มีไดเร็กทอรี "bin" ปรากฏขึ้น

ฉันต้องสร้างโปรเจ็กต์ Java ตั้งแต่เริ่มต้น (โดยใช้วิซาร์ด) จากนั้นเปรียบเทียบไฟล์ .projectไฟล์ของโปรเจ็กต์ที่ไม่ทำงานและที่ใช้งานได้

โครงการที่ให้ "Editor ไม่มีประเภทหลัก" มีสิ่งนี้เป็น "buildSpec" ในไฟล์. project:

<buildSpec>
</buildSpec>

แต่โครงการที่ทำงานมีสิ่งนี้เป็น "buildSpec":

<buildSpec>
    <buildCommand>
        <name>org.eclipse.jdt.core.javabuilder</name>
        <arguments>
        </arguments>
    </buildCommand>
</buildSpec>

ฉันคัดลอกสิ่งนี้และโครงการที่นำเข้าก็ใช้งานได้

ฉันรู้ว่าคำตอบของฉันคือสำหรับ Java แต่สิ่งเดียวกันนี้อาจเป็นปัญหาสำหรับโปรเจ็กต์ Scala ของคุณ


1

อาจเป็นไฟล์ที่คุณสร้างไว้นอกโฟลเดอร์ src (ต้นทาง) การพยายามเรียกคลาสอ็อบเจ็กต์ (จากไฟล์ที่อยู่ในโฟลเดอร์ src) จากไฟล์. java นอกโฟลเดอร์ซอร์สทำให้เกิดข้อผิดพลาดเดียวกัน คัดลอกไฟล์. java ไปยังโฟลเดอร์ต้นทางจากนั้นสร้างขึ้นมา ข้อผิดพลาดจะหมดไป


1

ผมมีปัญหาเหมือนกัน. ฉันมีคลาสหลักจากแพ็คเกจ src ในโฟลเดอร์อื่น ฉันย้ายมันเข้าไปและแก้ไขโฟลเดอร์และแก้ไข


1

เรียกใช้ "eclipse -clean -refresh" จากบรรทัดคำสั่ง สิ่งนี้ได้แก้ไขปัญหาให้ฉันเมื่อวิธีแก้ปัญหาอื่น ๆ ทั้งหมดล้มเหลว


1

นี่อาจเป็นปัญหากับพา ธ Java Build ลองทำตามขั้นตอนด้านล่าง:

  1. ไปที่คุณสมบัติโครงการ
  2. ไปที่ java Build Path
  3. ไปที่แท็บ Source และเพิ่มโฟลเดอร์ src ของโปรเจ็กต์

สิ่งนี้ควรแก้ไขปัญหาได้


1

หากเป็นโครงการ maven โปรดตรวจสอบไฟล์ java ที่สร้างขึ้นภายใต้ src / main / java

หากคุณไม่ได้รับโปรดเปลี่ยนเส้นทาง JRE และสร้างไฟล์ java ในโครงสร้างโฟลเดอร์ด้านบน


0

สำหรับฉันใน Eclipse 3.6 ปัญหานี้เกิดขึ้นเมื่อเมธอดหลักของฉันไม่ได้เป็นแบบสาธารณะ ฉันทำให้เกิดปัญหาโดยมีวิธีการหลักดังนี้:

static void main(String[] args) 

Dubugger ไม่สามารถตรวจจับได้ด้วยตัวเอง ฉันค่อนข้างแปลกใจที่ Eclipse มองข้ามสิ่งนี้ไป


0

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


0

ทำตามขั้นตอนด้านล่าง:

  1. สำรองไฟล์. java ทั้งหมดของคุณไปยังตำแหน่งอื่น
  2. ลบโครงการ java ทั้งหมด
  3. สร้างโครงการ java ใหม่โดยคลิกขวาที่รูทและคลิกใหม่
  4. กู้คืนไฟล์ทั้งหมดไปยังตำแหน่งใหม่ !!

0

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


0

อีกสิ่งหนึ่งที่ต้องตรวจสอบ: ตรวจสอบให้แน่ใจว่าซอร์สไฟล์ของคุณมีการประกาศแพ็กเกจที่ถูกต้องซึ่งสอดคล้องกับไดเร็กทอรีย่อยที่อยู่ในข้อผิดพลาดที่ OP กล่าวถึงสามารถเห็นได้เมื่อพยายามเรียกใช้ "ประเภทหลัก" ที่ประกาศในไฟล์ในไดเร็กทอรีย่อย แต่ ไม่มีคำสั่งแพ็คเกจ


0

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


0

ลอง 'อัปเดตโครงการ' เมื่อฉันทำสิ่งนี้ตัวเลือก Run as Java Application ก็ปรากฏขึ้น


0

ในกรณี 'Hello World' โดยเฉพาะของฉันสาเหตุของปัญหานี้คือความจริงที่ว่าmain()วิธีการของฉันอยู่ใน Scalaclassวิธีการที่อยู่ในสกาล่า

ฉันวางmain()วิธีการไว้ใต้สกาลาobjectและข้อผิดพลาดก็หายไป

นั่นเป็นเพราะสกาลา objectในเงื่อนไข Java เป็นเอนทิตีที่มีเฉพาะสมาชิกแบบคงที่และวิธีการภายใน

นั่นคือเหตุผลที่ Java public static void main()ใน Scala ต้องอยู่ภายใต้object .

(Scala classต้องไม่มีไฟฟ้าสถิตอยู่ข้างใน)

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