java - maven简单项目中springApplication中的IllegalAccessError

标签 java spring maven

添加 Spring Jars 3.2.5.RELEASE 后,我尝试在 Maven 中运行一个简单的应用程序,我的 Eclipse 是 3.8.3.RELEASE,并且收到此错误:

Exception in thread "main" java.lang.IllegalAccessError: tried to access method org.springframework.core.io.support.SpringFactoriesLoader.loadFactoryNames(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/List; from class org.springframework.boot.SpringApplication
at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:402)
at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:394)
at org.springframework.boot.SpringApplication.initialize(SpringApplication.java:261)
at org.springframework.boot.SpringApplication.<init>(SpringApplication.java:237)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175)
at Main.main(Main.java:8)

我的主要内容:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Main {

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

   }

}

我的pom.xml:

<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>io.javabrains.springbootquickstart</groupId>
  <artifactId>course-api</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>TrySpring</name>

<parent>

  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>1.4.2.RELEASE</version>

</parent>

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

<properties>
    <java.version>1.8</java.version>
</properties>


</project>

我也尝试过使用 STS,但遇到了同样的错误。

最佳答案

为什么要使用这么旧版本的 Spring 和最新版本的 Spring Boot?我怀疑问题是类路径冲突,其中引用了 3.2.5 版本,而不是较新的 Spring Boot 应用程序的相应 4.x.x jar。

当您像现在一样使用 starter pom 时,所有必需的 jar(实际上是大量多余的)都会包含在内以供您使用,您不需要在路径上专门包含任何 spring jar。

关于java - maven简单项目中springApplication中的IllegalAccessError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43059700/

相关文章:

java - 如何去除 JFrame 边框让图像触及边缘

java - JTextArea 在父缩小时不换行

java - 如何使用 spring Rest api 从 hibernate 中的两个表中获取数据并以单个对象返回到 url

java - 客户端的webjars目录几乎是空的

maven - 部署到 Maven 存储库时, "resolver"是什么?

java - 使用 Hibernate 实现 Tapestry 服务

java - SOA 中的事务

java - SpringBoot 2使用HikariCP无法连接MySQL

java - AnnotationMethodHandlerExceptionResolver 消息转换器

java - 无法使用 Maven 执行 Junit5 测试