无法访问org.springframework.context.ConfigurableApplicationContext类文件

43

我是Spring Boot的新手,在使用Spring Initializer在IntelliJ中构建我的第一个Spring Boot项目(Maven)时,创建完项目后运行出现了以下错误:

无法访问 org.springframework.context.ConfigurableApplicationContext 找不到 org.springframework.context.ConfigurableApplicationContext 的类文件

我按照许多教程操作,但每次都会遇到这个错误,请问如何解决?

我的pom.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
      http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.boot</groupId>
    <artifactId>das-boot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>First spring boot app</name>
    <description>project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.0.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

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

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

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>    

你能否展示一下spring-context的Maven依赖?如果不太大的话,能否展示整个POM文件? - gonzo
听起来像是下载文件损坏了。尝试删除Maven的缓存,这样它就会强制重新下载jar文件。 - Andy Wilkinson
1
根据@AndyWilkinson的建议,您可以尝试使用mvn dependency:purge-local-repository清除缓存。 - gonzo
1
@AndyWilkinson 我尝试了,但是运行后还是出现了相同的错误。 - I.shL
@AndyWilkinson 是的,在4.3.2.RELEASE文件夹中没有.jar文件,取而代之的是这个文件:spring-context-4.3.2.RELEASE.jar.lastUpdated。 - I.shL
显示剩余7条评论
22个回答

45

我通过以下步骤解决了这个问题:

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

3
我之前遇到了类似的问题,后来当我启用“自动导入Maven项目设置”时,问题就得到了解决。这个设置在“构建、执行、部署| 构建工具| Maven | 导入”中。 - PatS
2
是的,这样做是一样的!思路是从pom.xml文件打开应用程序作为Maven项目。 - Bilal Ahmed Yaseen
4
我想补充一下,Gradle 项目也有这个问题,但是通过选择 build.gradle 文件而不是基础目录进行修复。 - Nanor
是的,如果使用Maven,则通过选择pom.xml文件。 - Bilal Ahmed Yaseen

42

我正在使用 IntelliJgradle 来开发我的 Spring Boot 应用程序,也遇到了同样的问题。

我通过删除 classpath 下自动生成的 .iml 文件解决了这个问题。

希望能对后来的人有所帮助。


你能详细说明一下这种解决问题的方法吗? - S Gaber
2
@SGaber:如果您使用initializr的解压目录导入项目,则删除.idea目录。然后,如Nanor在另一个答案中提到的那样,使用build.gradle文件导入项目。 - Nikhil Silveira
它对我起作用了,我将项目目录导入为Gradle并删除了main.iml文件。 - Harshal
它对我有效,谢谢。 - mi_mo

31

对于我来说,第一个答案只有在将子项目作为新项目在新窗口中打开时才有效。

你可以尝试删除子项目src \main\main.iml中的 main.iml xxx.iml 。 这对我很有用。

编辑:不用担心,main.iml是由Idea自动生成的。


12

我正在使用IntelliJ IDEA,如果我使用“导入项目”,我会遇到同样的问题。即使使用“文件->清除缓存并重新启动”也无法解决问题。

我关闭了这个项目,并将其从列表中删除。

然后使用“打开”按钮而不是“导入项目”按钮来导入项目。它工作得很好。希望对某些人有所帮助。


6

对我有效的是运行

mvn package 

或者
mvn dependency:purge-local-repository    

尝试清除缓存/重启IntelliJ IDEA。希望这有所帮助。

3

对于我来说(使用的是Intellij IDE),只需要执行以下操作即可解决问题:

  • 文件 -> 无效缓存并重启

3
  1. 正如第一个答案所述,您可以尝试清除缓存并重新启动。我尝试了这个方法,但对我没有用。不过我认为这可能是IntelliJ的问题。
  2. 如果包有误,请检查您的maven依赖项。
  3. 我重新导入了所有maven依赖项,并检查了pom.xml文件中版本号的同步。这解决了我的问题。

2

删除Java和测试目录中的.iml文件


2

我的解决方法:

  • 右键点击项目/模块 -> 打开模块设置 -> 模块
  • 仅选择正确的模块

2
安装Maven命令行工具,然后运行以下命令。
mvn clean install

之后重新启动idea,它应该可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接