SpringBoot 中的 NoClassDefFoundError

问题描述 投票:0回答:1

我正在尝试从互联网上运行该项目,这是我遇到的错误:

2023-02-28 20:14:28.225 ERROR 13204 --- [           main] o.s.boot.SpringApplication               : Application run failed

java.lang.NoClassDefFoundError: org/springframework/core/NativeDetector
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.<init>(AbstractAutowireCapableBeanFactory.java:180) ~[spring-beans-5.3.14.jar:5.3.14]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.<init>(DefaultListableBeanFactory.java:193) ~[spring-beans-5.3.14.jar:5.3.14]
    at org.springframework.context.support.GenericApplicationContext.<init>(GenericApplicationContext.java:113) ~[spring-context-5.3.2.jar:5.3.2]
    at org.springframework.web.context.support.GenericWebApplicationContext.<init>(GenericWebApplicationContext.java:81) ~[spring-web-5.3.2.jar:5.3.2]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.<init>(ServletWebServerApplicationContext.java:118) ~[spring-boot-2.4.1.jar:2.4.1]
    at org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext.<init>(AnnotationConfigServletWebServerApplicationContext.java:72) ~[spring-boot-2.4.1.jar:2.4.1]
    at org.springframework.boot.ApplicationContextFactory.lambda$static$0(ApplicationContextFactory.java:48) ~[spring-boot-2.4.1.jar:2.4.1]
    at org.springframework.boot.SpringApplication.createApplicationContext(SpringApplication.java:597) ~[spring-boot-2.4.1.jar:2.4.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) ~[spring-boot-2.4.1.jar:2.4.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1309) ~[spring-boot-2.4.1.jar:2.4.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1298) ~[spring-boot-2.4.1.jar:2.4.1]
    at com.isolutions4u.onlineshopping.OnlineShoppingApplication.main(OnlineShoppingApplication.java:11) ~[classes/:na]
Caused by: java.lang.ClassNotFoundException: org.springframework.core.NativeDetector
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na]
    ... 12 common frames omitted


Process finished with exit code 1

这里是我的 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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.1</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.isolutions4u</groupId>
    <artifactId>online-shopping</artifactId>
    <version>0.0.2-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>online-shopping</name>
    <description>Demo project for Spring Boot</description>

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

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.3.6.Final</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.0.3.Final</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.webflow</groupId>
            <artifactId>spring-webflow</artifactId>
            <version>2.5.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-taglibs</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.3.14</version>
        </dependency>

    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <configuration>
                    <goals>install</goals>
                    <autoVersionSubmodules>true</autoVersionSubmodules>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

我曾尝试更改依赖项中的某些内容,但没有帮助

我只是想了解为什么它甚至没有启动

java spring-boot noclassdeffounderror
1个回答
0
投票

此错误消息表明 Java 虚拟机 (JVM) 无法找到属于 Spring Framework 核心库的类“NativeDetector”。

以下是您可以尝试解决此问题的一些方法:

  1. 确保您的类路径中有所需版本的 Spring Framework 库。您可以通过查看项目构建配置文件中列出的依赖项来检查这一点(例如 Maven 的 pom.xml,Gradle 的 build.gradle)。
  2. 检查类路径是否在您的环境中正确设置。这可以通过打印出“CLASSPATH”环境变量的值来完成。您还可以通过运行以下命令来检查 JVM 使用的类路径:

java -verbose:class your.application.MainClass

这将打印出 JVM 加载的所有类。

  1. 检查 Spring Framework JAR 文件是否损坏。尝试再次下载 JAR 文件并替换旧文件。

  2. 检查您的项目是否使用了正确版本的 Spring Framework 库。某些版本的 Spring Framework 可能依赖于其他库或需要特定版本的 Java。

如果您使用的是 Eclipse 或 IntelliJ 等 IDE,请尝试清理并重建您的项目。这将确保所有必要的文件都包含在类路径中。

希望这些建议能帮助你解决NoClassDefFoundError。如果问题仍然存在,请提供有关您的项目设置的更多信息以及您已采取的解决问题的步骤。

© www.soinside.com 2019 - 2024. All rights reserved.