32

我的 Eclipse (Indigo) 运行良好。我创建了一个简单的类Hello。它被放置在cont文件夹中的包中ch13。但是,当我尝试从 Eclipse 运行它时,我会从 Java Virtual Machine Launcher 获取信息:

Could not find the main class: cont.Hello.  

我试图从这个包中运行其他类,它们运行得很好(那是以前存在的类)。然而,我在这个包中创建的任何新类都有这些问题。实际上,我在 Eclipse 中创建的任何新类都会遇到这个问题。我决定从命令行检查它是如何工作的。似乎问题仍然存在 - 我得到同样的错误。我检查了路径,它C:\Program Files\Java\jdk1.7.0_02\bin是正确的(注意其他类都可以从 Eclipse 运行)。我尝试运行,java -cp . Hello并产生了一些以java.lang.NoClassDefFoundError: Hello (wrong name: cont/Hello). 代码本身很简单:

package cont;

public class Hello {
    public static void main(String[] args){
        System.out.println("Hello");
    }

}

如何修复它以便我的类仍然在 Eclipse 下运行?

4

20 回答 20

35

.metadata已损坏。

脚步:

警告:删除 .metadata 将删除所有 Eclipse 配置、插件、项目设置。在尝试此操作之前进行备份!

  1. 停止 eclipse,删除工作区中的 .metadata 并重新启动 eclipse

  2. 导入项目

  3. 再次运行

于 2012-09-13T05:13:09.500 回答
20
  • 删除运行配置

    有时我在eclipse的一些预发布版本中也有类似的问题。为了修复错误,我删除了Run Configuration。您可以在菜单RunRun Configurations ...中找到它

    然后我用Alt++启动应用Shift程序X,然后J. 如果这不起作用,Ctrl+ F11

  • 删除.metadata目录

    另一方面,您当前工作区的配置设置可能已损坏。这些设置位于.metadata当前工作区1的目录中。在这种情况下,除了删除目录之外别无选择:

    1. 关闭日食
    2. 删除.metadata目录。
    3. 开始日食
    4. 导入项目。
    5. 再次运行项目。

笔记

  1. 您将看到该目录的文件>切换工作区>其他...
于 2012-04-27T20:37:41.887 回答
19

我已经通过以下方式解决了这个问题:

转到运行配置(右键单击 Java 文件->运行->运行配置)。

转到 ClassPath 选项卡:单击高级 -> 添加文件夹 -> 添加 bin 目录(其中包含 Java 源代码的类文件)

重新运行代码,现在它会解决问题。它对我有用

于 2014-01-09T05:58:10.070 回答
4

注意:这在过去很有效,我收到了很多赞成票。也许这不再是一个解决方案 - 但它曾经是 - 正如 eclipse 版本所指出的那样。


问题

这也可能是由 Java 构建路径问题引起的。

就我而言,我有一个错误:

A cycle was detected in the build path of project {project}. The cycle consists of projects {x, y, z}.

当您在要运行的项目的构建路径中包含其他项目时,可能会发生这种情况。实际上,所有项目都将无法运行并出现错误 Could not find the main class: Example.class


解决方案

打开

Windows-> Preferences-> Java-> Compiler-> Building->Build Path Problems

取消选中Abort build when build path errors occur切换

如果您最终遇到我想象的其他构建路径错误,这似乎是一罐蠕虫。所以谨慎使用


  • 注意:这仅在您有“循环错误”时才有效。此错误消息可在“标记”选项卡中找到

我在这里找到了解决方案


信息

  • Java 1.8.0_152
  • Eclipse Photon(2018 年 6 月)
于 2018-07-15T16:51:31.433 回答
2

你必须在你的类中有 main 函数。喜欢

public class MyDataBase {

    public static void main(String args[]) {
    
    }
}
于 2014-09-09T15:35:39.820 回答
2

重命名主类就足够了(也是最简单的):
- 转到您的班级并将光标设置为您的班级名称;
- ALT + Shift + R 并重命名类(如果没有自动完成,则构建);
- 你现在应该可以运行它了;
- 如果需要,将课程重命名为旧名称;

于 2017-08-22T08:14:35.827 回答
1

我在 Maven 项目中遇到了同样的问题。在项目中创建 src/test/java 文件夹后,错误消失了。

于 2015-12-07T16:46:45.750 回答
0

另一个提示:我以错误的顺序初始化静态字段 - 令人惊讶的是它没有提出问题(NullPointerException?),而是 Eclipse 准确地抱怨了 OP 发布的消息。更正静态初始化顺序使类可以运行。例子:

private static ScriptEngineManager factory = null;
private static ScriptEngine engine = null;
static {
    engine = factory.getEngineByName("JavaScript");
    // factory is supposed to initialize FIRST
    factory = new ScriptEngineManager();
}
于 2013-05-13T09:38:37.697 回答
0

我通过关闭项目、将其从 Eclipse 中删除然后再次导入来解决了这个错误。

可能比重做整个工作区设置要简单一些。

于 2017-10-29T14:48:14.950 回答
0

升级到 Eclipse 2019-12 版本后,我遇到了这个问题。不知何故,启动 JVM 的命令行太长了,我不得不在运行配置中启用 jar-classpath 选项(右键单击文件 -> 运行方式 -> 运行配置)。

于 2020-01-31T15:11:01.187 回答
0

我发现解决这个问题的方法是重命名项目。如果你给它起一个带有奇怪字符的名字(在我的例子中是:),它会很难找到你的班级。我不知道这条规则是否适用于数字,但请尝试重命名项目或创建一个新项目并复制文件。不带任何数字或特殊字符的名称。

于 2015-09-05T08:10:09.913 回答
0

我阅读了很多博客并尝试了很多技巧,但我的问题没有解决。我能够运行代码但无法生成 jar 文件。:( 伤心..

但是我尝试了一些可能非常愚蠢但对我有用的东西,并在跟踪中购买了 eclipse。我所做的是..只是从类中删除了主要方法。保存了它。撤消以将主要课程带回来。多田...问题已解决...只想说,让您的日食保持在“自动构建”模式。

于 2020-10-09T10:05:22.143 回答
-1

在 lib 目录中可以有 2 个 groovy-xxx-all.jar 文件。这使得应用程序没有运行

于 2014-03-07T14:33:28.810 回答
-1

将文件移动到名为 cont 的子目录中

于 2012-04-27T19:43:25.520 回答
-1

我有同样的问题,这是我的解决方案:

  1. 我手动删除了项目的bin文件夹
  2. 然后我刷新了重新编译整个项目的项目并创建了一个包含所有 .class 文件的新 bin

我这样做是因为当我执行 Clean(project->clean) 时,我的 .class 文件没有被删除。上述解决方案对我有用,希望对其他人有用。

于 2014-04-26T20:20:43.770 回答
-1

Eclipse 的标准故障排除步骤应包括在某些时候删除和重新导入项目,当我处理此错误时,这些步骤已经奏效。

于 2013-02-28T17:14:41.583 回答
-1

如果您使用的是预定义的运行配置,请转到类路径并尝试“恢复默认条目”。这将为该配置重新配置类路径。

于 2015-04-09T14:58:53.040 回答
-1

我通过这样做解决了我的问题:

  • 将整个主要课程(CTRL X)从课程中删除(仅几秒钟),
  • 保存类文件 (CTRL S)
  • 将主要的背面完全粘贴在同一位置(CTRL V)

奇怪的是,它在那之后又开始工作了。

于 2014-02-25T02:34:43.557 回答
-1

我有同样的问题。我用以下命令 Maven 解决了:

mvn eclipse:eclipse -Dwtpversion=2.0

PS:我的项目是WTP插件

于 2014-08-26T18:54:36.073 回答
-1

这最终对我有用:运行-> 运行配置-> 删除运行配置关闭 ECLIPSE 重新打开 ECLIPSE 再次创建运行配置。

塔达啊!!有用

于 2017-07-18T03:23:50.007 回答