netbeansでjava.lang.NoClassDefFoundErrorの解決方法を教えて下さい。 NetBeans IDE 7.0を使ってJAVAで、「Hell World !」を表示するものを 作りました。 ソースコード public class HelloWorld { public static void main(String args[]) { System.out.println("Hello World!"); } } NetBeansで、 「実行]-「ファイルを実行」とすると、「Hello World!」と表示されます。 正しく動きます。 しかし、 「実行」-「プロジェクトを実行」とすると、以下のエラーメッセージがでます。 java.lang.NoClassDefFoundError: helloworld/HelloWorld Caused by: java.lang.ClassNotFoundException: helloworld.HelloWorld at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) Could not find the main class: helloworld.HelloWorld. Program will exit. Exception in thread "main" Java Result: 1 また、コマンドラインから以下の様に実行しても、実行してもエラーとなります。 C:\Program Files\Java\jdk1.6.0_25\bin>java.exe -jar C:\java\HelloWorld\dist\HelloWorld.jar Exception in thread "main" java.lang.NoClassDefFoundError: helloworld/HelloWord Caused by: java.lang.ClassNotFoundException: helloworld.HelloWorld at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) Could not find the main class: helloworld.HelloWorld. Program will exit. そこで、 ソースコードに、「package helloworld;」の記述を行いと期待した結果となりました。 NetBeansで、「実行」-「プロジェクトを実行」 コマンドラインから実行 しても、「Hello World!」と表示されます。 ソースコード package helloworld; public class HelloWorld { public static void main(String args[]) { System.out.println("Hello World!"); } } 何故、 「package helloworld;」の記述の追加で動いたのでしょうか。 あるとないとで、どう違うのでしょうか。 「package helloworld;」は、何を意味しているのでしょうか。 環境は、 JDK1.6(jdk1.6.0_25) クラスパスは未設定。
↧