java.lang.NoClassDefFoundError の解決方法

CLASSPATHの設定

javaコマンドでclassファイルを実行すると、以下のエラーが出る場合


# java HelloWorld
java.lang.NoClassDefFoundError: HelloWorld
Caused by: java.lang.ClassNotFoundException: HelloWorld
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: HelloWorld. Program will exit.
Exception in thread "main" %

これはクラスパスの設定が原因であると考えられます。

下記のようにカレントディレクトリをクラスパスとして指定すると実行できる場合があります。


# java -classpath ./ HelloWorld
HelloWorld