আমি ওরাকলের জাভা টিউটোরিয়ালগুলিতে উদাহরণ দুটিই ব্যবহার করে দেখেছি । তারা উভয়ই সূক্ষ্ম সংকলন করে, তবে রান-টাইমে উভয়ই এই ত্রুটিটি নিয়ে আসে:
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
আমি Eclipse ব্যবহার করছিলাম না (কেবল নোটপ্যাড ++ এবং জেডিকে), এবং উপরের আপডেটটি আমার সমস্যার সমাধান করেছে। যাইহোক, মনে হয় যে এই উত্তরগুলির অনেকগুলিই গ্রহন এবং ইন্টেলিজের জন্য, তবে তাদের মত ধারণা রয়েছে have
package graphics;
শীর্ষে থাকবে)। কিgraphics
আপনার প্যাকেজ গঠন প্রধান? স্কোয়ারেরpackage graphics.shapes
শীর্ষে কি আছে ?