编译代码后,最终将得到
.class程序中每个类的文件。这些二进制文件是Java解释为执行程序的字节码。该
NoClassDefFoundError指示类加载器(在这种情况下
java.net.URLClassLoader),这是负责动态加载类,无法找到
.class该类你试图使用的文件。
如果不存在所需的类(除非使用反射加载了类),则你的代码将无法编译,因此通常此异常意味着你的类路径不包含所需的类。请记住,类加载器(特别是
java.net.URLClassLoader)将在类路径中每个条目中的文件夹abc中的a / b / c /文件夹中查找类。
NoClassDefFoundError也可能表明你缺少编译时要使用的.jar文件的传递依赖项。
例如,如果你有一个类
com.example.Foo,则在编译后将有一个类文件
Foo.class。假设你的工作目录为
.../project/。该类文件必须放在中
.../project/com/example,并且你将你的类路径设置为
.../project/。
旁注:我建议你利用Java和JVM语言中已有的惊人工具。诸如Eclipse和IDEA之类的现代IDE以及诸如Maven或Gradle之类的构建管理工具将帮助你不必担心类路径(过多地担心)并专注于代码!就是说,此链接说明了在命令行执行时如何设置类路径。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)