-2

当我尝试在终端上的 Linux 上运行 Java 时,会发生以下情况:

Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldApp/class
Caused by: java.lang.ClassNotFoundException: HelloWorldApp.class
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)

谁能帮我这个?

编辑:我在字节码文件的文件夹中并在终端上运行它:

bash-4.1$ java class HelloWorldApp

源文件:

/**
 * The HelloWorldApp class implements an application that
 * simply prints "Hello World!" to standard output.
 */
class HelloWorldApp {
    public static void main(String[] args) {
    System.out.println("Hello World!"); // Display the string.
    }
}
4

2 回答 2

1

你正在执行

java HelloWorldApp.class

但它必须是

java HelloWorldApp

您可能不会将类附加到您的呼叫中,而是将类名命名为普通名称。

此外,正如其他人所说,最好使用包作为默认包中的类不能正常工作。

于 2012-11-12T20:13:53.320 回答
-1

你还应该注意,如果你在代码中有包声明,即使你尝试了所有花哨的修复,比如设置 CLASSPATH,它也会搞砸。例如,如果您有:

package blah;

public class HelloWorld
{
    public static void main(String[] args)
    {
         System.out.println("Hello world");
    }
}

该行:包等等;编译后会导致java HelloWorld失败。所以删除此行,您应该能够通过 cmd 行运行 src。

于 2013-02-26T03:49:17.980 回答