运行java应用程序时,获取noClassDeffound错误的原因是什么?

时间:2013-04-14 01:40:53

标签: java noclassdeffounderror

当我运行程序时,我收到以下错误,我不知道这个错误意味着什么?有没有人有任何想法?

java.lang.NoClassDefFoundError: program/pkg7/Program7 
java.lang.ClassNotFoundException: program.pkg7.Program7
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: programja.pkg7.Program7.  Program will exit.
Exception in thread "main" Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

2 个答案:

答案 0 :(得分:1)

你的问题有些可疑。诊断显示两个不同的例外:

java.lang.NoClassDefFoundError: program/pkg7/Program7 
java.lang.ClassNotFoundException: program.pkg7.Program7

然后底部的消息说:

Could not find the main class: programja.pkg7.Program7.  Program will exit.

请注意,程序名称不同。

但忽略不一致(由不良复制粘贴引起?),最可能的原因是以下之一:

  • 您尝试启动的课程的完全限定名称不是“program.pkg7.Program7”...但是(我猜)“pkg7.Program7”
  • 启动命令时执行类路径不正确,因此JVM无法找到该类。 (类路径告诉Java在哪里查找需要加载的类。)

如果您没有关于如何运行该程序的更多信息,我可以建议您最好仔细阅读有关类路径如何工作的Oracle文档:

答案 1 :(得分:0)

好的,这可能是你的问题。

您的课程 Program7 包含名为 program.pkg7 的软件包。你正在目录 pkg7

中进行 java Program7

解决方案是:

返回已编译的类根目录并运行如下:

java -classpath . program.pkg7.Program7

此致 拉维