SpringBoot项目启动后自动关闭:Process finished with exit code 0

一个正确的SpringBoot项目启动后的控制台输出如下图所示(每个人的配置、启动项不一样,控制台的输出会不一样):

这是正常启动的SpringBoot项目。

我遇到的一个SpringBoot项目启动后竟然自动关闭了,启动后的控制台输出是这样的:

可以看到这个项目后自动退出了,可以看最后一行的日志,大意是:

进程已完成,退出代码为0

而且,这个自动退出的项目和上面那个正常启动的项目,都打印出了启动项目花费的时间以及虚拟机运行的时间——最后一个红框中的内容。那这个问题处在哪里呢?

如果单独启动这个自动退出的项目,如果不了解的话,看到这一行信息:

No active profile set, falling back to default profiles: default

我们会以为是这里出了问题,它的意思是:

未设置活动配置文件,返回默认配置文件:默认

实际上,正常启动的项目很多时候也会有这个提示,我们看第一个项目的第二行信息就知道了,它也有这样的提示。这个问题的具体答案请参考:

spring boot profile配置和启动时no active profile set, falling back to default profiles: default的问题

我们按着这篇博文中的描述,在application.properties文件中加上这一行代码:

spring.profiles.active=default

然后重新启动项目,这时的控制台信息就变成了:

这是第二个自动退出的项目。可以看到,已经没有了关于未设置激活配置文件的提示。同样的,我们也在第一个项目中的application.properties文件中加上这样一句话,再启动后发现也没有了:

No active profile set, falling back to default profiles: default

它们两个都是多出了一句话:

The following profiles are active: default

意思不言自明,就不多说什么了。

那到底是什么原因导致的第二个项目自动后自动退出,或者说自动关闭呢?

我们参照一篇博文试一试解决方案:

关于SpringBoot启动后自动关闭的问题

按照这一片文章中的介绍,我查看了我的pom文件,发现我的这个项目确实没有添加

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

我们加上之后,重启项目试一试,结果报错了,报错信息说的是8080端口冲突,已经被占用了,我立马想到是我第一个项目启动的原因,我们将第一个项目关闭(或者在application.properties中修改端口号也行),重新启动第二个项目,我们发现:

很明显,项目启动成功了。

下面我们将spring-boot-starter-web注释掉,然后采用上面博文中所说的第二种方法试一试,添加tomcat:

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

然后重启第二个项目,发现还是启动后自动退出。抱着探究到底的心态,我们把第一个项目的spring-boot-starter-web注释掉,然后加上tomcat的依赖试一试,发现竟然启动成功了。为了防止是修改pom后没有编译的原因,我们对导入的jar包重新导入,然后使用maven重新编译项目,结果发现还是启动成功了。这也说明了,上面博文那种方法是可行的。但是为什么我的第二个项目就启动字段关闭了呢?

其实spring-boot-starter-web内嵌了tomcat的,所以启动的时候没有问题,这个我们能理解。我们知道spring-boot-starter-web是一个web项目的依赖,如果我的项目不涉及到web呢?我不需要引入spring-boot-starter-web,只需要一个tomcat就行了,那此时该怎么办呢?

尝试找到原因,最终失败了。不过我想这就是一个项目启动的问题,无关紧要的,我们只需要知道,项目启动肯定是需要容器启动的,比如tomcat,那必然是我在第一个项目的依赖或者其他地方有一些问题,暂时先到这里吧!等找到解决方案的时候再补上。

总结:

遇到“Process finished with exit code 0”问题的解决方案有两种:

一是在pom中添加spring-boot-starter-web依赖,二是在pom中添加spring-boot-starter-tomcat依赖。

第二种在有些项目中可能不能解决问题。

 

 

  • 43
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
SpringBoot项目启动后直接退出,并且显示"Process finished with exit code 1"时,这表示程序在执行过程中遇到了某些问题或错误而非正常退出。[3]这种情况通常是因为在项目启动过程中出现了异常或错误,导致程序无法继续正常执行。 要解决这个问题,你可以采取以下步骤: 1. 检查项目的日志文件,查看是否有任何异常或错误信息。日志文件通常会提供有关程序执行过程中的详细信息,包括错误堆栈跟踪和异常信息。通过查看日志文件,你可以更好地了解出现问题的原因。 2. 检查项目的配置文件,确保配置正确。有时候,项目启动失败是由于配置文件中的错误或不完整导致的。仔细检查配置文件,确保所有的配置项都正确设置。 3. 检查项目的依赖项和版本兼容性。某些情况下,项目启动失败是由于依赖项版本不兼容或冲突导致的。确保项目所需的依赖项都正确导入,并且版本兼容性良好。 4. 运行项目时,使用调试模式来捕获更多的错误信息。调试模式可以帮助你跟踪代码执行的过程,并在出现异常或错误时提供更多的上下文信息。 通过检查日志文件、配置文件和依赖项,以及使用调试模式来定位并解决问题,你应该能够找到导致SpringBoot项目启动后直接退出的具体原因,并采取相应的措施来修复它。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [springboot启动直接退出显示Process finished with exit code 1](https://blog.csdn.net/m0_37899908/article/details/124229057)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [SpringBoot 项目启动后直接退出:Process finished with exit code 0](https://blog.csdn.net/weixin_46040161/article/details/128613727)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北冥牧之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值