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
(コマンドラインから)、それが働きました。
本当に遅いアップデート#2
私はEclipse(Notepad ++とJDKのみ)を使用していませんでした。上記のアップデートで問題が解決しました。ただし、これらの回答の多くはEclipseとIntelliJに対するもののようですが、それらには同様の概念があります。
package graphics;
上部にあります)。であるgraphics
あなたのパッケージ構造のヘッドは?Squareはpackage graphics.shapes
一番上にありますか?