【问题标题】:Spring Boot can't find main classSpring Boot 找不到主类
【发布时间】:2018-01-30 18:06:51
【问题描述】:

就像标题中提到的那样,我有一个 Spring Boot 项目。试图从我的 IDE 中启动项目,它说找不到主类。

我在这里找到了一个相对等价的问题: Spring Boot Program cannot find main class

但是解决方案对我来说并没有这样做(我已经在 pom.xml 中配置了主类),如下所示:

<properties>
    <start-class>de.main.Main</start-class>
    <java.version>1.8</java.version>
</properties>

这就是我的主要课程的样子:

package de.main;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

@SpringBootApplication
public class Main extends SpringBootServletInitializer{

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Main.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(Main.class, args);
    }
}

除此之外,另一个使用 Spring Boot 的项目也可以正常工作。并且 pom.xml 在两个项目中的配置方式相同。

我用的是 Spring Boot 1.5.2 版和 eclipse 氧气。

错误消息如下所示: "Fehler: Hauptklasse de.main.Main konnte nicht gefunden oder geladen werden" 大致翻译: “错误:无法找到或加载主类 de.main.Main”

我的项目结构是这样的:

Project
|--- Java Resources
|       |--- src
|       |     |----de.main
|       |
|       |--- WebContent
|
|--- pom.xml

【问题讨论】:

  • 可以添加错误信息吗?
  • 它是德语,但可以肯定:Fehler: Hauptklasse de.main.Main konnte nicht gefunden oder geladen werden
  • 可以添加项目的目录结构吗?
  • 您真的需要扩展SpringBootServletInitializer 并覆盖该方法吗?你介意尝试摆脱它并运行它吗?
  • @Pijotrek 它在我的另一个项目中对我有用 - 摆脱它也不起作用。它仍然是同样的问题。 :(

标签: java eclipse maven spring-mvc spring-boot


【解决方案1】:

尝试执行当前文件,如Run as -> Java Application。然后确认它是否正在运行,然后您可以通过Run as -> Spring Boot App 一次运行整个项目。尝试贴出项目的目录结构。

【讨论】:

    【解决方案2】:

    请仔细检查您的Main 课程是否在src/main/java/de/main/ 目录下。

    【讨论】:

      【解决方案3】:

      通过运行程序找到原因。 cmd - 一些不必要的依赖造成了麻烦。通过删除它们修复了问题。

      【讨论】:

        【解决方案4】:

        我遇到了同样的问题。在我做了一个目标设定为测试的 Maven 构建之后,它对我有用。 (右键单击项目 -> 运行方式 -> maven build ... -> 当提示什么目标放置测试时)

        【讨论】:

          猜你喜欢
          • 2015-04-11
          • 2016-01-10
          • 2018-11-01
          • 2018-05-09
          • 2019-05-06
          • 2017-10-17
          • 1970-01-01
          • 2021-04-28
          • 2020-11-24
          相关资源
          最近更新 更多