当尝试在Eclipse SDK中编译和运行我的程序时,会弹出此错误。我之前从未遇到此错误消息,其他帖子不是很有帮助。什么可能导致这种情况?
答案 0 :(得分:9)
如果您有一个main()方法并且仍在接收此方法,那么如果您还收到noclassdeffound错误,该错误也可能显示为线程错误的一部分。如果这是您之前已成功使用的现有程序的新问题,则可能是因为编译错误。删除已编译的jar文件并重新编译。
答案 1 :(得分:7)
我是Java的新手。在我对我的项目进行一些更改以使用不同的jdk后,我发生了同样的事情。我已将我的项目更改为引用jdk 1.6而不是1.7。然后我开始收到此错误。当我去项目属性 - > Java编译器时,我注意到它在所有下拉列表中都有1.7。我将工作区设置更改为使用1.6,一切都开始工作。伊戈尔的帖子让我得到了这个决议。
答案 2 :(得分:2)
错误没有说明“主要”方法。它说找不到主要的班级......
所以,我搜索了一下,有很多原因:从错误版本的ANT(基于蚂蚁的项目)开始,包括用JRE7编译的java类,并用JRE6运行......
您能否提供一些关于您的环境的更多信息? Eclipse SDK是什么意思?它是Eclipse IDE吗?你在创建什么样的项目?源代码?
谷歌多一点,有很多点击,有人可能会帮助你。
答案 3 :(得分:2)
右键单击项目资源管理器中的项目名称,选择 properties ,选择 Java compiler ,选择您在系统中安装的JRE版本(如1.6) 编译器合规性级别,然后单击“确定”并运行该程序!完成!
答案 4 :(得分:1)
您正在尝试运行没有main方法的java类。添加一个main方法,并将其称为“启动”方法。
public static void main(String[] args){
MyClass mc = new MyClass();
mc.myStarterMethod();
}
答案 5 :(得分:1)
运行java程序时,必须知道从哪里开始。在java中,约定是一个main方法,具有以下签名:
public static void main(string[] arguments)
运行java程序时,它会查找要运行的主方法。那个主方法可以调用你的任何其他代码,但它需要一个起点。
如果你的程序有一个不同方法的列表,它怎么知道你想要运行哪一个?您是否希望它只运行一次找到的每个方法?那会很糟糕。
所以你需要像
这样的东西public static void main(string[] arguments){
System.out.println("here");
//Call your methods
//myFunction();
//doThing();
return;
}
答案 6 :(得分:1)
我突然遇到这个问题,当我尝试运行完全正常运行的类时,是的,他们有main()方法,我突然得到了上述错误。我把项目清理干净并重建,但无济于事,相当令人沮丧。
我查看了“问题”选项卡,并说我丢失了一些库jar文件,我查看了我的工作区,我的.java文件在那里,但是在/ bin下面的同一个地方没有。类文件,这是它无法找到类的原因。
我所做的是移动了包含库jar文件的目录,因此将这些库文件移回,重新启动eclipse将其排序。
答案 7 :(得分:0)
上电后我遇到了同样的问题,Eclipse没有编译并启动我的项目。 项目清理项目 - >干净,它解决了我的问题。
答案 8 :(得分:0)
在路径中遇到过与Eclipse类似的问题。
我发现调试此方法的最佳方法是转到“运行配置”对话框,然后单击“公共”子选项卡,将启动配置保存为项目目录中的“共享文件”。
然后您可以查看启动文件以查看是否有任何明显的内容。
例如,Eclipse没有启动我的主类的最新原因是我一直在尝试使用maven m2eclipse插件并且已经错误地启动了启动配置,以便添加了m2eclipse类路径声明。
那告诉我,我需要从项目中删除maven项目类型,然后从发布文件中自动清除maven / m2eclipse残差(自动),然后我的类可以正常运行。 只是这个错误可能出现的许多有趣方式之一。
答案 9 :(得分:0)
过去我遇到过完全相同的问题。问题是类路径不包括当前目录。只需将程序所在的文件夹添加到CLASSPATH环境变量中。如果这不起作用,请告诉我。
答案 10 :(得分:0)
如果您使用的是package语句,则可以获得此信息,但源代码不在package语句中引用的路径中。
答案 11 :(得分:0)
此错误显示为jdk编译器版本。 请使用适当的正确编译器(如jre1.6或1.7)。
答案 12 :(得分:0)
我在Eclipse IDE中遇到了类似的问题。
答案 13 :(得分:0)
清理并重建项目解决了我的问题。