我已经编写了以下Java源代码文件 (Hello.java
):
package com;
public class Hello {
public static void main(String[] args) {
System.out.println("Hello!");
}
}
我将这个文件保存到 C:/tmpjava/Hello.java
。
从命令行中,我进入该目录并运行 javac Hello.java
。然后我运行 dir
:
Hello.class
Hello.java
接着,在刚才运行 javac
的同一目录下,我运行 java Hello.class
并得到结果:
Exception in thread "main" java.lang.NoClassDefFoundError: Hello/class
Caused by: java.lang.ClassNotFoundException: Hello.class
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: Hello.class. Program will exit.
这是怎么回事?!javac
可以正常运行,但是 java
不行?
java Hello
即可。 - Thorbjørn Ravn Andersen