-2

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

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)
4

2 回答 2

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 文档:

于 2013-04-14T02:01:11.657 回答
0

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

您的Program7类具有名为program.pkg7的包。你正在pkg7目录中执行java Program7

解决方案是:

回到你编译的类根目录并运行如下:

java -classpath . program.pkg7.Program7

问候,拉维

于 2013-04-14T02:02:00.163 回答