繁体   English   中英

NoClassDefFoundError 从控制台运行 java

[英]NoClassDefFoundError running java from the console

当我尝试在终端上的 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.
    }
}

你正在执行

java HelloWorldApp.class

但它必须是

java HelloWorldApp

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

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

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

package blah;

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM