当我尝试在终端上的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.
}
}
答案 0 :(得分:1)
您正在执行
java HelloWorldApp.class
但必须
java HelloWorldApp
您不能将类附加到您的通话中,但名称可以是明确的类名。
另外,正如其他人所说,最好使用包,因为默认包中的类不能正常工作。
答案 1 :(得分:-1)
你还应该注意,如果你在代码中有包声明,即使你尝试了所有类似设置CLASSPATH的花哨修复,它也会搞砸了。例如,如果你有:
package blah;
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hello world");
}
}
行:包裹等等; 编译后会导致java HelloWorld失败。因此,删除此行,您应该能够通过cmd行运行src。