Spring Boot Program找不到主类

时间:2015-02-11 09:47:19

标签: java eclipse spring-mvc spring-boot

我有一个程序在eclipse中作为Spring启动应用程序运行。该程序运行正常。然后我做了以下事情:

右键点击项目 - >运行方式 - > Maven测试。

这是偶然的。当我再次尝试将程序作为弹簧启动应用程序运行时,它会在下面抛出以下错误。

Error: Could not find or load main class com.bt.collab.alu.api.webapp.Application

如何将应用程序指向我的主类? 感谢

27 个答案:

答案 0 :(得分:67)

我遇到了同样的问题。试试这个:

右键单击项目 - > Maven - >更新项目

然后重新运行该项目。希望它也适合你。

答案 1 :(得分:31)

主类可以在pom.xml中配置

<properties>
    <start-class>com.bt.collab.alu.api.webapp.Application</start-class>
</properties>

答案 2 :(得分:14)

看看&#34;运行 - &gt;运行配置......&#34;在Eclipse中。你应该删除你错误创建的新的,你应该仍然有现有的。

我怀疑它为&#34; Run as Maven Test&#34;创建了一个新的运行配置。你现在总是开始这个​​。

答案 3 :(得分:12)

如果您正在使用Spring Boot并且上述建议不起作用,您可能需要查看Eclipse Problems视图(可在Window - &gt; Show View - &gt; Problems中找到)。

例如,如果您的某个jar文件已损坏,则可能会出现相同的错误(错误:无法找到或加载主类 groupId .Application)。 Eclipse会抱怨它无法找到Applications类,即使坏jar是根本原因。

然而,问题视图将为您识别坏罐。

无论如何,我必须手动转到我当地的mvn repo(在.m2中)并手动删除损坏的jar,然后更新它(在Package Explorer中右键单击项目),Maven - &gt;更新项目... - &gt;好的(假设正确的项目是经过检查标记的)。

答案 4 :(得分:7)

在我更新了pom之后发生了这种情况(添加了一些依赖项)。

以下步骤帮助我避免了此错误

right click on the project > maven > update project

答案 5 :(得分:6)

我尝试了上述所有解决方案,但没有为我工作。 终于可以通过一个简单的修复程序解决它。

在STS上, 运行配置>打开您的Spring Boot应用>打开您的配置, 请按照以下步骤操作,

  1. 在Spring boot选项卡中,检查您的Main class和配置文件。
  2. 然后转到类路径选项卡,在底部,您将看到两个复选框,一个是“排除测试代码”(如果您不想运行测试类,请选中此复选框),另一个是“使用临时Jar文件指定类路径” (这是必要的)。

保存您的配置并运行。 enter image description here

答案 6 :(得分:4)

使用 spring-boot:run 命令启动spring boot应用程序:

<强>前提条件: 1.将以下属性添加到pom.xml

<property>    
<start-class>com.package.name.YourApplicationMainClass</start-class>
</property>

2。建立你的项目

然后使用spring-boot:run。

配置maven命令

导航:

右键单击项目|运行为|运行配置... |使用命令spring-boot:run

添加新的Maven配置

答案 7 :(得分:4)

如果有人使用 Gradle 进行构建,则修复方法是在 build.gradle 文件中添加以下几行

apply plugin: 'application'

mainClassName = "com.example.demo.DemoApplication"

答案 8 :(得分:2)

错误:无法加载或找到主类

项目:Spring Boot 工具:STS


解决步骤:


  1. 运行项目

  1. 在“问题”标签中查看,它将显示损坏的错误

  1. 删除.m2文件夹中的特定jar(损坏的jar)

  1. 更新项目

  1. 成功运行

答案 9 :(得分:2)

我使用了spring 1.5.3.RELEASE版本并给出了像

这样的pom依赖项
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.3.RELEASE</version>
    </parent> 

   <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
   </dependencies>

我的主要课程是

@SpringBootApplication
public class SpringAppStarter {


    public static void main(String[] args) {

        SpringApplication.run(SpringAppStarter.class, args);
    }

}

但是在执行主要课程的时候我仍在:

  

无法使用我的班级名称找到或加载主班级。

我可以看到该类在类路径中可用,而我正在使用STS IDE。

我没有理由解决这个问题然后我尝试通过maven手动构建

mvn clean install

那时仍有问题我意识到我的项目有两个库

  1. 参考资料库
  2. Maven图书馆
  3. 我做了什么:
    我创建了另一个mavenRepo文件夹并再次构建它并刷新我的项目。之后它工作了,我看到Maven Library已从项目类路径中删除。

    问题是在执行时它获得了多个版本,因此无法找到正确的类来执行我的应用程序。 此页面中列出的其他解决方案也可以解决问题,但如果您在

    中犯了错误
    1. 注释课程
    2. pom entry
    3. jar version等。
    4. 希望如果有人遇到这个问题,这可能会解决问题

答案 10 :(得分:2)

从.m2删除旧jar并更新maven项目应该是主要步骤。 在大多数情况下,它解决了这个问题。这个问题的原因主要是腐败的旧罐子

答案 11 :(得分:1)

遇到了相同的问题,并可以通过以下列出的步骤解决此问题:

  1. 文件->使缓存无效并重新启动
  2. 文件->新建->现有来源的项目
  3. 仅选择 pom.xml 文件(而不是整个项目目录)来加载项目。项目将自动设置。

答案 12 :(得分:0)

我也遇到了这个错误,没有任何线索。我可以在Target文件夹中看到类和jar。我后来安装了Maven 3.5,通过Maven的conf / settings.xml将我的本地仓库从C盘切换到其他驱动器。之后它完美无缺。我认为在C盘中拥有本地回购是主要问题。即使repo有完全访问权限。

答案 13 :(得分:0)

在我的情况下,以下帮助:

在pom中添加了以下部分

  <plugins>
    <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <executable>true</executable>
            </configuration>
    </plugin>
  </plugins>

使用maven3然后运行

答案 14 :(得分:0)

我是春季启动的新手,并使用STS与maven构建。我做了上面提到的所有事情,但没有为我工作。我注意到STS的问题窗口有两个问题。路径上有一个丢失的jar文件(C:\ Users \ UserName.m2 \ repository \ com \ jayway \ jsonpath \ json-path \ 2.2.0)。我做了以下,这种方式并没有强烈建议,但为我工作。

1)我从路径位置删除了.m2文件夹

2)重启STS

3)右键单击项目文件夹 - &gt; maven - &gt;更新项目 - &gt;检查&#34;强制更新快照/发布&#34; - &GT;单击“确定”。

Maven更新了它的依赖项,问题解决了。

答案 15 :(得分:0)

如果您的项目包装类型战争无法启动。我正在使用具有此配置的maven程序集插件;

<build>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.0.0</version><!--$NO-MVN-MAN-VER$ -->
            <configuration>
                <descriptors>
                    <descriptor>assembly.xml</descriptor>
                </descriptors>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <mainClass>com.ttech.VideoUploaderApplication</mainClass>
                    </manifest>
                </archive>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id> <!-- this is used for inheritance merges -->
                    <phase>package</phase> <!-- bind to the packaging phase -->
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

和我的包装tpe是战争我得到了无法找到主类异常我改变了包装到罐子里工作;

<groupId>com.ttect</groupId>
<artifactId>VideoUploadListener</artifactId>
<version>1.0.0</version>
<packaging>**jar**</packaging>

答案 16 :(得分:0)

我知道这是很晚的答案。但这可能仍对一些新学习者有所帮助。 以下示例仅适用于使用NETBEANS的springboot。 我必须执行以下步骤:

步骤1 。遵循@Mariuszs的答案。

第2步。右键单击项目->属性->运行。 确保主类字段具有正确的入门类,否则单击浏览并从可用的类中进行选择。

第3步。单击确定->确定。 Thant就是全部。谢谢。

答案 17 :(得分:0)

我遇到了同样的问题,只是从您的本地存储库中删除了.m2文件夹文件夹 希望它能工作。

答案 18 :(得分:0)

我面临着同样的问题。我已经删除了目标文件夹并运行maven install,就可以了。

答案 19 :(得分:0)

在向项目添加spring安全依赖项时,我遇到了类似的问题, 然后我删除了目标文件夹,并再次使用了maven update。 对我有用。

答案 20 :(得分:0)

即使我遇到了同样的问题,后来我发现它也发生了,因为Maven构建操作在我的环境中未正确进行。请也根据您的情况进行检查。

答案 21 :(得分:0)

Intellij

  • 关闭Intellij
  • 删除所有与Intellij相关的文件(.idea文件夹和* .iml文件)
  • 就像是第一次一样在Intellij中打开项目(使用“最近打开”将不起作用,需要通过文件->打开来完成ID)

答案 22 :(得分:0)

尽管我正在使用gradle build,但遇到了同样的错误。将IDE构建/运行操作委托给Gradle解决了我的问题。

Intellij: 设置->构建,执行,部署->构建工具-> Gradle-> Runner

Screenshot

答案 23 :(得分:0)

如果你遇到了

  

错误:无法在maven项目中找到或加载主类

这样做对我有用:
错误原因:此错误的原因是jar文件或运行maven项目的依赖项未正确安装。

错误解决方案:转到项目文件夹(例如:D:\office\OIA-service-app
在计算机类型命令cmd的地址栏中按Enter键 在命令提示符下键入命令mvn clean install,确保您具有Internet连接。

答案 24 :(得分:0)

start-class对我不起作用,我通过在build plugins上添加pom.xml来解决它,而executions是必需的。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

答案 25 :(得分:0)

我在“ Spring Tool Suite”软件中遇到了相同的错误。

对于我来说,我安装了Java 8,并创建了Java 11项目。运行该项目时,我遇到了同样的错误,例如“找不到主类”。

然后我用Java 8创建了一个项目,问题得以解决。

答案 26 :(得分:0)

这里有很好的答案,但是也许这也可以帮助别人。

对我来说,这是在我删除.idea(使用IntelliJ)并重新导入项目后发生的。

然后这个问题开始,我尝试运行mvn编译(仅通过IDE Maven工具栏),一旦我修复了几个编译错误,问题就消失了