无法访问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个回答

0

我尝试了清除缓存和重启,但是没有起作用。 问题是版本冲突。

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

  1. 前往https://start.spring.io/,选择您的Java和Spring版本

  2. 前往页面底部找到“探索”

  3. 复制版本声明代码

    <modelVersion>4.0.0</modelVersion>
    
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.5.1</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <groupId>com.example</groupId>
  <artifactId>demo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>demo</name>
  <description>Demo project for Spring Boot</description>
  <properties>
    <java.version>16</java.version>
  </properties>
  1. 清除缓存并重启

注意:请确保将groupId和artifactId更改为您自己的


0
为了完整起见,作为可能的答案之一,而不是针对这个问题,而是针对这些问题:
如果您使用的是Java 8(将支持到2030年),最新的SpringBoot版本为2.2-2.3(适用于Java 8-15),所以如果您有3.x.x版本,例如,对您来说这是一个“坏的jar” ,因为那里的字节码版本大于52.0。
在这种情况下,缓存失效将不起作用。请使用相应的LTS Spring版本。

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