Как решить java.ленг.NoClassDefFoundError?



Я пробовал оба примера в Oracle Java Tutorials. Они оба компилируются нормально, но во время выполнения, оба приходят с этой ошибкой:



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.run(URLClassLoader.java:366)
at java.net.URLClassLoader.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; к нему), установите classpath в "_test" (папка, содержащая графику), скомпилировал его и запустил с помощью java graphics.Main (из командной строки), он работал.



действительно позднее обновление #2



Я не использовал Eclipse (только Notepad++ и JDK), и вышеприведенное обновление решило мою проблему. Однако, похоже, что многие из этих ответов предназначены для Eclipse и IntelliJ, но у них есть похожие концепции.

578   0  

Comments

    Ничего не найдено.