Java项目启动报错:Process exited with an error: 1 (Exit value: 1)

目录

 

一、错误情况介绍

二、解决方案

三、错误验证 

 四、一般方案尝试

 五、彻底解决方案

方案一

方案二

总结


 

一、错误情况介绍

刚开始一直不知道这个是什么问题,网上的答案莫衷一是,看到有网友说是端口占用问题,但是我看idea中没有说这个问题:

 这是报错情况。

我又点击了exec那一行,终于显示出错误原因了:

APPLICATION FAILED TO START
***************************
Description:
Web server failed to start. Port 8011 was already in use.
Action:
Identify and stop the process that's listening on port 8011 or configure this application to listen on another port.
[ERROR] Command execution failed.
org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)
    at org.apache.commons.exec.DefaultExecutor.executeInternal (DefaultExecutor.java:404)
    at org.apache.commons.exec.DefaultExecutor.execute (DefaultExecutor.java:166)
    at org.codehaus.mojo.exec.ExecMojo.executeCommandLine (ExecMojo.java:982)
    at org.codehaus.mojo.exec.ExecMojo.executeCommandLine (ExecMojo.java:929)
    at org.codehaus.mojo.exec.ExecMojo.execute (ExecMojo.java:457)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:64)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:564)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
    at org.codehaus.classworlds.Launcher.main (Launcher.java:47)

重点是这一句话:

Description:
Web server failed to start. Port 8011 was already in use.

这就很明显了,确实是端口被占用了。可是我不明白,我通过IDEA关闭了正在运行的项目,怎么会对应的监听端口没有被关闭呢?之前一直都这么做的,难道是与idea的版本有关吗?这个不去纠结它了,先把对应的端口的进程给kill再说。

二、解决方案

在windows上,通过dos命令,即输入cmd回车,然后输入:

# 8010是你占用的端口号
netstat -ano|findstr 8010

结果如图:

 最后面的9004就是监听的对应的端口号,我们kill掉即可。

 此时再启动该项目即可。

关于杀掉进程的概述:

  1. 通过 cmd 打开 DOS 命令,或在 IDE 的下边的“终端”操作命令行
  2. netstat -ano | findstr 8010
  3. taskkill /pid 8476 /f 或 taskkill -f /pid 8476

出现这种情况是偶然的原因吗?我尝试关闭软件、关机重启多次,发现依然出现这种情况。有的网友说idea要关闭两次,其实不是这个问题。貌似IDE之前的版本是这样的,我这个是2021版的,点击一次stop就立马弹出:

三、错误验证 

即: Process terminated,再启动就还是文章开头那个错误了。

这里我们是不是换一种思路,怎么正确的关闭idea,或者说怎么正确地停止java项目?这么提问方式找不到什么答案,我们再换一个,Idea强制关闭后项目端口依然被占用的解决方案?

发现他们给出的方案都是我上面讲的,找到端口占用的进程,杀掉进程,而没有从根本上解决我遇到的这个问题。

网上还有人说,这种情况是貌似我们通过idea关闭了项目,实际上没有关闭,项目还在后台运行,因为端口依然被监听,是这样的吗?那我们写一个controller调用一下不就知道了吗?如果关闭程序后,依然可以连通,那就确实是在后台运行了。

我们调用controller,看到返回结果:

现在我们关闭程序,再调用试试:

 结果发现还真是的,不管怎么刷新浏览器,还是会有上面的放回结果:

Hello World 扣减库存 

确实是没有关闭程序,导致端口依然被占用,应该是idea出了问题。但是怎么解决呢?

 四、一般方案尝试

网上找到一个方案:

 图片来源:

IDEA 窗口关闭 进程还在

这篇文章给出了答案,而且标题写的简洁明了。

我打开我的IDE后,发现如图:

 和上面博主的不太一样,不过不要紧,大致应该是差不多的。

意思是什么呢?

关闭正在运行的进程的工具窗口时:

终止进程;

断开;

询问

 大家看到,我这个默认的是询问,但是貌似也没有询问什么玩意,我们修改为“Terminate process”试试。

但是还是不行,我都关闭了idea了,浏览器访问刚才的地址还是出现正确的返回结果。那是不是重启之后刚才的配置修改才能生效呢?我们重启idea,然后杀掉进程,再重新启动项目再关闭试试。

 杀掉进程之后,还是不行,这个方案我觉得不ok。

就到这里吧,我已经折腾了几天了,搞不定暂时! 


 五、彻底解决方案

时间:2022年5月5日10:38:59

以上是我之前遇到的情况,一直没有解决,直到今天,看到评论区的兄弟给出了一个方案:

【报错】:org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)

我使用了第一个方案,完美解决。

 

 我们看到左上角那几个按钮,这个是正常的。不正常的不是这样显示的,如图:

 

 这是不正常的显示,具体可以参考我的这篇文章:

IDEA上Java项目启动全部报错

 不正常的这个,点击关闭的时候,这个 Application 会一直转圈。

解决方案我们也在此记录一下:

方案一

 取消上面打的√。默认的可能是不勾选的,但是不知道什么情况,它给打钩上了,所以导致我们关闭应用程序后,进程没有自动关闭。

方案二

在POM中加入依赖:

<plugins>
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.6.0</version>
        <configuration>
            <classpathScope>test</classpathScope>
        </configuration>
    </plugin>
</plugins>

方案一,亲测可用;方案二,没有测试,应该也是可以的。

至此,我们完美解决了这个问题。

在此,谢谢评论区的 苇草2020 兄弟。他的主页是:

苇草2020的博客_CSDN博客-领域博主

 同时,也感谢:上面文章的博主。

总结

  1. 报错情况:Java项目启动报错:Process exited with an error: 1 (Exit value: 1)
  2. 错误原因:应用程序关闭后,进程不能同步关闭
  3. 网上的一般解决方案,都是通过命令行解决。这个不能彻底解决,每次都要手动操作,很麻烦
  4. 最终解决方案:参见上面方案一和方案二
  • 18
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
这个错误通常是由于MongoDB启动失败导致的,具体原因可能有很多,例如: - MongoDB配置文件中的参数设置不正确。 - MongoDB数据目录的权限不正确。 - MongoDB数据目录已经损坏或者磁盘空间不足。 - MongoDB二进制文件或者依赖库文件损坏或者不存在。 要解决这个问题,你可以尝试以下几种方法: 1. 检查MongoDB配置文件中的参数设置是否正确。可以查看MongoDB的日志文件,例如: ``` tail -f /var/log/mongodb/mongod.log ``` 如果发现日志中有错误信息,可以根据错误信息来修复问题。 2. 检查MongoDB数据目录的权限是否正确。可以使用以下命令来设置MongoDB数据目录的权限: ``` sudo chown -R mongodb:mongodb /var/lib/mongodb sudo chmod -R 755 /var/lib/mongodb ``` 其中"mongodb"是MongoDB服务运行时所使用的用户。 3. 检查MongoDB数据目录是否已经损坏或者磁盘空间不足。可以使用以下命令来检查MongoDB数据目录的磁盘空间: ``` df -h /var/lib/mongodb ``` 如果发现磁盘空间不足,可以尝试清理一些不必要的文件或者扩大磁盘空间。 4. 检查MongoDB二进制文件或者依赖库文件是否损坏或者不存在。可以使用以下命令来检查MongoDB二进制文件和依赖库文件: ``` md5sum /usr/bin/mongod md5sum /usr/lib64/libbson-1.0.so.0 md5sum /usr/lib64/libmongoc-1.0.so.0 ``` 如果发现文件的md5值不正确,可以重新安装MongoDB或者修复文件。 希望以上方法能够帮助你解决问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

北冥牧之

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

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

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

打赏作者

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

抵扣说明:

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

余额充值