मैंने ओरेकल के जावा ट्यूटोरियल्स में दोनों उदाहरण की कोशिश की है । वे दोनों ठीक संकलन करते हैं, लेकिन रन-टाइम पर, दोनों इस त्रुटि के साथ आते हैं:
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);
}
}
मुझसे यहां क्या गलत हो रहा है?
अपडेट करें
जब मैंने Main
कक्षा को graphics
पैकेज में डाला (मैंने package graphics;
इसे जोड़ा ), तो क्लासपैथ को "_test" (ग्राफिक्स युक्त फ़ोल्डर) सेट करें, इसे संकलित किया, और इसे java graphics.Main
(कमांड लाइन से) का उपयोग करके चलाया ।
वास्तव में देर से अद्यतन # 2
मैं एक्लिप्स (सिर्फ नोटपैड ++ और जेडीके) का उपयोग नहीं कर रहा था, और उपरोक्त अपडेट से मेरी समस्या हल हो गई। हालांकि, ऐसा लगता है कि इनमें से कई उत्तर एक्लिप्स और इंटेलीज के लिए हैं, लेकिन उनकी समान अवधारणाएं हैं।
package graphics;
शीर्ष पर होगा )। हैgraphics
अपने पैकेज संरचना के सिर? क्या स्क्वायरpackage graphics.shapes
शीर्ष पर है?