Oracle のJava チュートリアルの両方の例を試しました。どちらも正常にコンパイルされますが、実行時に両方とも次のエラーが発生します。
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
(コマンドラインから)実行すると、機能しました。
本当に遅いUPDATE #2
私はEclipse ( Notepad++と JDK のみ) を使用していませんでしたが、上記の更新で問題が解決しました。ただし、これらの回答の多くは Eclipse およびIntelliJ IDEA向けのようですが、同様の概念があります。