Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行java应用程序时出现noClassDeffound错误的原因是什么?_Java_Noclassdeffounderror - Fatal编程技术网

运行java应用程序时出现noClassDeffound错误的原因是什么?

运行java应用程序时出现noClassDeffound错误的原因是什么?,java,noclassdeffounderror,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.AccessControlle

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

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)

你的问题有点可疑。诊断显示两个不同的异常:

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


    • 好的,这可能是您的问题

      Program7具有名为program.pkg7的包。您正在目录pkg7

      解决办法是:

      返回已编译的类根目录并像以下那样运行:

      java -classpath . program.pkg7.Program7
      
      问候,,
      拉维

      请进一步介绍您的环境。如何执行程序?这是一个常见的问题。原因是您的运行时类路径上没有相关的类。@Karki,这可能有助于解决您的问题。:)@Karki-源代码可能与此问题无关。问题很可能是程序的运行方式。(源代码的唯一相关性是它将确认您应该在
      java
      命令行上使用什么作为“class name”参数。)请注意,此错误可能是由于试图从
      pkg7
      目录而不是
      程序的父目录运行类而导致的。感谢您的帮助。我可以创建一个新项目并复制代码吗?“我可以创建一个新项目并复制代码吗?”-我不知道这是否有帮助。你可能最终会犯与你现在犯的相同的错误。如果你解释了你在使用什么工具以及如何运行程序,我们可以给你更好的建议。@Stephen,我正在使用NetBeans IDE 7.3,通过调用类“program 7”下编码的方法从主方法运行程序。@Karki-"... 通过调用类“program 7”下编码的方法从主方法运行程序-我不理解你评论的那部分。你不能“调用”“IDE中的一种方法。您正在启动该程序。。。你需要清楚地解释你是如何启动这个程序的。@Karki-此外,我不使用NetBeans,也不熟悉它是如何启动程序的。