Spring 引导应用程序无法以类路径 [] 启动



我用jHipster生成了一个Spring Boot应用程序,从我以前的项目(非jhipster项目)中添加了一些代码,并尝试使用IDEA运行它。首先,我收到一条与此类似的错误消息,说"命令行太长......"(我正在运行Windows 10 x64)。我单击了启用,但随后出现如下错误。

"C:Program FilesJavajdk1.8.0_144binjava" -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:51351,suspend=y,server=n -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=51350 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -Dfile.encoding=UTF-8 -classpath C:UsersUserAppDataLocalTempclasspath.jar com.test.pc.TestPartsComposerApp
Connected to the target VM, address: '127.0.0.1:51351', transport: 'socket'
The Class-Path manifest attribute in C:UsersUserAppDataLocalTempclasspath.jar referenced one or more files that do not exist: .... Extremely long list of jars
07:48:56.779 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Included patterns for restart : []
07:48:56.779 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Excluded patterns for restart : [/spring-boot-starter/target/classes/, /spring-boot-autoconfigure/target/classes/, /spring-boot-starter-[w-]+/, /spring-boot/target/classes/, /spring-boot-actuator/target/classes/, /spring-boot-devtools/target/classes/]
07:48:56.779 [main] DEBUG org.springframework.boot.devtools.restart.ChangeableUrls - Matching URLs for reloading : []
07:48:57.570 [restartedMain] DEBUG org.springframework.boot.logging.ClasspathLoggingApplicationListener - Application failed to start with classpath: []

在我尝试使用./mvnw

The Class-Path manifest attribute in C:UsersUser.m2repositorycomsunxmlbindjaxb-impl2.2.3-1jaxb-impl-2.2.3-1.jar referenced one or more files that do not exist: C:UsersUser.m2repositorycomsunxmlbindjaxb-impl2.2.3-1jaxb-api.jar,C:UsersUser.m2repositorycomsunxmlbindjaxb-impl2.2.3-1activation.jar,C:UsersUser.m2repositorycomsunxmlbindjaxb-impl2.2.3-1jsr173_1.0_api.jar,C:UsersUser.m2repositorycomsunxmlbindjaxb-impl2.2.3-1jaxb1-impl.jar
The Class-Path manifest attribute in C:UsersUser.m2repositoryorgliquibaseliquibase-core3.5.3liquibase-core-3.5.3.jar referenced one or more files that do not exist: C:UsersUser.m2repositoryorgliquibaseliquibase-core3.5.3libsnakeyaml-1.13.jar
07:53:54.295 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Included patterns for restart : []
07:53:54.295 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Excluded patterns for restart : [/spring-boot-starter/target/classes/, /spring-boot-autoconfigure/target/classes/, /spring-boot-starter-[w-]+/, /spring-boot/target/classes/, /spring-boot-actuator/target/classes/, /spring-boot-devtools/target/classes/]
07:53:54.295 [main] DEBUG org.springframework.boot.devtools.restart.ChangeableUrls - Matching URLs for reloading : [file:/C:/workspace/jh-fpc/TestPartsComposer/target/classes/]
07:53:55.295 [restartedMain] DEBUG org.springframework.boot.logging.ClasspathLoggingApplicationListener - Application failed to start with classpath: [file:/C:/workspace/jh-fpc/TestPartsComposer/target/classes/]

我在这里发布了我的pom.xml

创建了一个全新的项目,并开始逐个添加我拥有的 maven 依赖项,并在每一步后运行项目。当我将弹簧批次和番石榴添加到 pom 中时,类路径会出现问题。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-batch</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>${guava-core.version}</version>
</dependency>

我在具有相同错误消息的 jHipster 应用程序中遇到了同样的问题,对我来说,根本原因是 application-dev.yml 中弹簧邮件设置的格式(缩进)错误。我只是从另一个项目中复制/粘贴设置,IntelliJ 缩进它们的格式与原始代码中的设置略有不同,因此无法解析。

每次启动应用程序时都会出现这些"清单属性"的东西,但至少对我来说,它们与真正的问题无关。希望这有助于找到原因的根源!干杯

此错误消息由ClasspathLoggingApplicationListener#onApplicationEvent

但它不会输出错误的真正原因。

因此,您应该在调试模式下启动您的应用程序,并在此行添加断点,然后您可以检查event.exception,并找出真正发生的错误是什么。

这个问题浪费了我大约 30 分钟......希望这个答案可以节省一点时间

同样的问题,我只是忘记在application.properties中设置spring.profiles.active,并且我有多个application-*.properties

删除依赖spring-boot-devtools

检查您的主.class路径:在此处输入图像描述

您的主.class需要在自定义包中。如果在主.class不包含条目"包...",你会得到一个错误。

我在使用JHipster(6.4.1)应用程序时遇到了同样的问题,按照@koni123的建议,我发现我不小心复制了logback-spring.xml中的XML声明。

解决问题后,我可以看到启动时仍然打印清单警告,所以这只是一个红鲱鱼。

我在 Spring 中

也遇到了这个问题,似乎根本原因是我在我的 pom 中遇到的冲突SLF4J依赖关系,与 Spring 本地使用的版本不同。

我在jhipster @4.10.2上遇到了同样的问题,我得到的解决方案在这里

正如@koni123正确所说,这与application-dev.yml有关,当我将此文件与以前的文件版本进行比较时,发现"spring.jpa.hibernate.format_sql:true"给了我问题。一旦我从应用程序开发.yml中删除它,它就解决了我的问题。希望这有帮助。

请确保在记录器中激活了控制台追加器。这将告诉您 Eclipse 控制台中真正的问题所在。

<root level="info">
        <appender-ref ref="CONSOLE" /> 
        <appender-ref ref="FILE" />
</root>

最新更新