【问题标题】:ClassNotFound exception in java commandjava命令中的ClassNotFound异常
【发布时间】:2013-04-09 10:37:58
【问题描述】:

我有一个简单的 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"

【问题讨论】:

  • 您从哪里运行它?尝试从“org”文件夹的父级运行它。

标签: java noclassdeffounderror classnotfoundexception


【解决方案1】:

您收到此错误可能是因为该类不是类路径的一部分。您可以使用-cp java 选项指定类路径,以指向找到 org.Chunk 类的目录/jar。

【讨论】:

  • 他可能只是想从错误的父文件夹中运行它。
  • @NilsH 是的,这也是我的填充物。使用-cp 并指定正确的目录,将允许他从任何位置运行测试。
  • 是的,我从错误的位置运行命令。现在我改变了我的父母,问题解决了。但是我在运行 java -cp mytest.jar classname 命令时遇到了类似的问题。你能帮我为什么这个命令引发类未找到错误
  • @JagdishTalele 您可以使用jar tvf mytest.jar 查看存档中是否存在org/Chunk.class
  • @dan 是的,它在那里,但仍然给出 ClassNotfound 错误。
猜你喜欢
  • 1970-01-01
  • 2012-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-30
  • 1970-01-01
相关资源
最近更新 更多