我有简单的 Hello word 程序。当不在代码中声明命名空间时,程序将编译并运行,但是当我在命名空间中声明该类并编译程序时,它将成功编译,但在该程序运行时会给出错误 classnotfound 。我的问题是为什么java编译器在代码中声明命名空间(包)时无法找到类?
请找到以下源代码:
package org;
public class Chunk
{
public static void main(String [] args)
{
System.out.println("Hello, World");
}
}
命令是
java org.Chunk
错误是
java.lang.NoClassDefFoundError: org/Chunk
Caused by: java.lang.ClassNotFoundException: org.Chunk
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)
Could not find the main class: org.Chunk. Program will exit.
Exception in thread "main"
最佳答案
您收到此错误可能是因为该类不是类路径的一部分。您可以使用 -cp
java 选项指定类路径,以指向找到 org.Chunk 类的目录/jar。
关于java - java命令中的ClassNotFound异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15899678/