1. Maven异常

很多初学者在刚开始使用maven构建项目时,总会时不时的遇到一些解决不了的问题,让人抓耳挠腮,花费很长的时间想办法进行解决。今天壹哥就来给大家说一个最简单、最实用的方法,教你一招搞定Maven中的问题。我们先看看下面这个常见的Maven问题:

​严重: Failed to initialize end point associated with ProtocolHandler ["http-bio-8080"] java.net.BindException: Address already in use: JVM_Bind <null>:8080 at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:407) at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:623) at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:434) at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119) at org.apache.catalina.connector.Connector.initInternal(Connector.java:981) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:814) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139) at org.apache.catalina.startup.Tomcat.start(Tomcat.java:341) at org.apache.tomcat.maven.plugin.tomcat7.run.AbstractRunMojo.startContainer(AbstractRunMojo.java:1238) at org.apache.tomcat.maven.plugin.tomcat7.run.AbstractRunMojo.execute(AbstractRunMojo.java:592) 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 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) 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)​

我们乍一看这个错误信息,就可以发现,这明显是因为8080端口被占用了!如果你把当前的IDE根据关闭,然后重新启动项目,结果会发现,还是会显示这样错误!然后你就陷入无尽的怀疑和痛苦中,这到底是因为什么呢。

2. 异常原因

壹哥给大家解释一下产生该问题的原因:

这是因为我们在开发过程中,开启了tomcat服务器,但没有正常关闭们,进而导致进程一致在后台运行!结果后来你又继续开启了一个新的tomcat服务器,导致端口被占用,而无法正常启动。

那这个问题又该怎么解决呢?

3. 解决办法

你只需要按照壹哥的以下解决办法,就能包治此错误:

  • 打开任务管理器;
  • 找到所有带有java名称的进程;
  • 关闭掉它们。

启动Maven项目时遇到的那点麻烦事儿_jvm

 OK,这样以上的问题就都解决了!另外,你也可以用以上办法解决其他类似的问题哦。

4. 小结

我们作为初学者,在学习的过程中,总会遇到这样或者那样的问题,让我们感觉到进步的痛苦和无力。但我们需要做的就是坚持,每一个错误其实都是成功路上的垫脚石,当登上巅峰回首过往,你会发现原来我们最恐惧的事情其实就是战胜恐惧时的未知!

加油吧骚年!请持续关注壹哥,我会继续推出更多优质内容,伴你成长的每一天哦!