J'ai essayé les deux exemples dans le manuel d'Oracle. Tutoriels Java . Les deux compilent bien, mais au moment de l'exécution, ils affichent tous deux cette erreur :
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
Je pense que je pourrais avoir le Main.java
dans le mauvais dossier.
Voici la hiérarchie des répertoires :
graphics
Main.java
shapes
| Square.java
| Triangle.java
linepoint
| Line.java
| Point.java
spaceobjects
| Cube.java
| RectPrism.java
Et voici 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);
}
}
Qu'est-ce que je fais de mal ici ?
UPDATE
Après avoir mis le Main
dans la classe graphics
(j'ai ajouté package graphics;
), a défini le classpath à "_test" (dossier contenant les graphiques), l'a compilé et l'a exécuté à l'aide de la commande java graphics.Main
(à partir de la ligne de commande), cela a fonctionné.
Très en retard UPDATE #2
Je n'utilisais pas Eclipse (juste Notepad++ et le JDK), et la mise à jour ci-dessus a résolu mon problème. Cependant, il semble que beaucoup de ces réponses concernent Eclipse et le JDK. IntelliJ IDEA mais ils ont des concepts similaires.