cmd中的java.lang.NoClassDefFoundError
当我试图通过编写java文件名来运行我的java文件时,我遇到了这个问题 我已经在很多页上阅读了可能的纠正方法,但不幸的是,我一直无法纠正我的问题cmd中的java.lang.NoClassDefFoundError,java,Java,当我试图通过编写java文件名来运行我的java文件时,我遇到了这个问题 我已经在很多页上阅读了可能的纠正方法,但不幸的是,我一直无法纠正我的问题 首先,我查看了我的环境变量,发现没有类路径集,并且我正确地将路径指向了我的jre以及C中的jdk bin:\ 其次,我能够运行javac filename.java,并观察到.class文件是在本地目录中构建的 在编写javac-classpath时。文件名用于编写java-classpath。filename(不带.class)会导致相同的错误 我
请帮助……注意,如果您的类驻留在某个包
mypackage
中,则需要确保类文件位于mypackage/
中,并且
java -classpath . mypackage.YourClass
在你的帖子里有一点信息。。。如前所述,一个完整的例子将真正有助于解决这个问题。一些想法:
- 类是否命名为
?如果没有,您应该确保在java命令中调用正确的类名文件名
- 如果类名中有奇怪的字符(基本上除了A-Z、A-Z、0-9、Z之外的任何字符),它可能会被文件系统弄乱,从而导致
无法找到它。确保类名与文件名相同java
- 如果使用包,请确保包名与文件结构一致(有关一些示例,请参阅带有标记包的最新问题)
- 你们班是公开课吗?如果没有,就这样做。(不过,这会产生另一个错误。)
public class Filename {
}
考虑到您的示例,这就是它的工作方式:java filename
public class filename {
}
这也可能存在,但你可能只是在和我们开玩笑:)
总的来说,不管文件系统上的文件名是什么,类都有一个名称,这是java命令所期望的名称。我建议使用大写首字母形式,因为它更清楚imo您的类是否在包中(即在文件开头使用“package x.y.z”decl)?我建议您提供一个SSCCE以及命令的确切输出。“简短、自包含、正确的示例”不建议使用默认包。把它放在一个包裹里。
public class SomethingElse {
}