ฉันได้ลองทั้งสองตัวอย่างในJava Tutorialsของ Oracle แล้ว พวกเขาทั้งสองรวบรวมปรับ แต่ในเวลาทำงานทั้งสองเกิดขึ้นกับข้อผิดพลาดนี้:
Exception in thread "main" java.lang.NoClassDefFoundError: graphics/shapes/Square
at Main.main(Main.java:7)
Caused by: java.lang.ClassNotFoundException: graphics.shapes.Square
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
ฉันคิดว่าฉันอาจมีMain.java
ไฟล์ในโฟลเดอร์ที่ไม่ถูกต้อง นี่คือลำดับชั้นไดเรกทอรี:
graphics
├ Main.java
├ shapes
| ├ Square.java
| ├ Triangle.java
├ linepoint
| ├ Line.java
| ├ Point.java
├ spaceobjects
| ├ Cube.java
| ├ RectPrism.java
และนี่คือMain.java
:
import graphics.shapes.*;
import graphics.linepoint.*
import graphics.spaceobjects.*;
public class Main {
public static void main(String args[]) {
Square s = new Square(2,3,15);
Line l = new Line(1,5,2,3);
Cube c = new Cube(13,32,22);
}
}
ฉันทำอะไรผิดที่นี่
UPDATE
หลังจากที่ฉันใส่Main
ชั้นเรียนลงในgraphics
แพ็คเกจ (ฉันเพิ่มpackage graphics;
เข้าไป) ตั้ง classpath เป็น "_test" (โฟลเดอร์ที่มีกราฟิก) รวบรวมและเรียกใช้โดยใช้java graphics.Main
(จากบรรทัดคำสั่ง) ใช้งานได้
สายเกินไปอัพเดท # 2
ฉันไม่ได้ใช้ Eclipse (แค่ Notepad ++ และ JDK) และการอัปเดตข้างต้นแก้ปัญหาของฉันได้ อย่างไรก็ตามดูเหมือนว่าคำตอบเหล่านี้มีไว้สำหรับ Eclipse และ IntelliJ แต่มีแนวคิดที่คล้ายกัน
package graphics;
อยู่ด้านบน) เป็นgraphics
หัวหน้าโครงสร้างแพ็คเกจของคุณหรือไม่ Square มีpackage graphics.shapes
ที่ด้านบนหรือไม่