cmd中的java.lang.NoClassDefFoundError

时间:2011-02-06 14:13:02

标签: java

我在尝试通过编写java filename ....来运行我的java文件时遇到了这个问题。

我已经在许多页面上阅读了可以纠正的可能方法,但不幸的是我无法纠正我的问题......

  1. 首先,我查看了我的环境变量并观察到没有 CLASSPATH 设置,并且我已经将 PATH 正确指向我的jre和jdk bin中的C:\

  2. 第二,我能够运行 javac filename.java ,并观察.class文件是在本地目录中构建的。

  3. 在编写 javac -classpath时。 filename 可以编写 java -classpath。 filename (没有.class)会导致相同的错误。

  4. 我只是不知道如何在命令提示符下运行我的程序! 请不要给我链接到我上面提到的相同答案的页面,因为它们在我的案例中不起作用.....

    请帮忙......

3 个答案:

答案 0 :(得分:3)

请注意,如果您的类位于某个包mypackage中,则需要确保该类文件位于mypackage/内并执行

java -classpath . mypackage.YourClass

答案 1 :(得分:0)

你的帖子中有一些信息......如上所述,一个完整的例子真的有助于解决这个问题。一些想法:

  • 类名为filename吗?如果没有,您应该确保在java命令中调用正确的类名。
  • 如果您的班级名称中有奇怪的字符(基本上除了AZ,az,0-9,_之外),它可能会被您的文件系统破坏,从而导致java无法找到它。确保类名与文件名相同。
  • 如果您使用软件包,请确保软件包名称与您的文件结构一致(有关示例,请参阅标记软件包的最新问题)。
  • 你的班级公开吗?如果没有,那就这样吧。 (但这应该会产生另一个错误。)

答案 2 :(得分:0)

说明javac filename.java和java文件名是不够的。

我们还需要知道filename.java的内容或至少前几行。

这是宣布课程的预期方式

 public class Filename {
    }

根据您的示例,这是必须工作的方式:java filename

 public class filename {
    }

这也可能存在,但你可能只是在搞乱我们:)

public class SomethingElse {
}

总体而言,无论文件系统上的文件名是什么,该类都有一个名称,这是java命令所期望的名称。我建议使用大写首字母表格,因为它更清晰imo