NoClassDefFoundError に関する多くの投稿があることは知っていますが、それらはすべて jar ファイルについて話しているようです。私はEclipseでJavaに慣れていますが、大学側で何かが壊れていない限り、私が思いつくことができる最も単純なものが機能しない理由についてはかなり迷っています。
public class hello {
public static void main (String args[]) {
System.out.println ("Hello World!");
}
}
これは、これをスローする hello.java プログラム全体です。
Exception in thread "main" java.lang.NoClassDefFoundError: hello/java
Caused by: java.lang.ClassNotFoundException: hello.java
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: hello.java. Program will exit.
$CLASSPATH=./:/usr/java/latest/lib:/home/41/myusername/bin
java -verbose hello.class
与えます:
[/usr/java/jdk1.6.0_10/jre/lib/rt.jarを開いた] [/usr/java/jdk1.6.0_10/jre/lib/rt.jar から java.lang.Object をロード] [/usr/java/jdk1.6.0_10/jre/lib/rt.jar から java.io.Serializable をロード] [/usr/java/jdk1.6.0_10/jre/lib/rt.jar から java.lang.Comparable をロード] [/usr/java/jdk1.6.0_10/jre/lib/rt.jar から java.lang.CharSequence をロード] [/usr/java/jdk1.6.0_10/jre/lib/rt.jar から java.lang.String をロード] [/usr/java/jdk1.6.0_10/jre/lib/rt.jar から java.lang.reflect.GenericDeclaration をロード] [/usr/java/jdk1.6.0_10/jre/lib/rt.jar から java.lang.reflect.Type をロード] [/usr/java/jdk1.6.0_10/jre/lib/rt.jar から java.lang.reflect.AnnotatedElement をロード] [/usr/java/jdk1.6.0_10/jre/lib/rt.jar から java.lang.Class をロード] ... [/usr/java/jdk1.6.0_10/jre/lib/rt.jar から sun.misc.AtomicLong をロード] ...
再び例外を除いて。
Java -バージョン
与えます:
Java バージョン「1.6.0_10-rc2」 Java(TM) SE ランタイム環境 (ビルド 1.6.0_10-rc2-b32) Java HotSpot(TM) Server VM (ビルド 11.0-b15、混合モード)