解决ActiveMQ 启动时闪退问题:java.net.BindException: Address already in use

解决ActiveMQ 启动时闪退问题!

一、问题描述

1、因为项目中有用到了ActiveMQ这个消息组件,平时启动的时候都是正常启动,但是今天启动active.exe跑了一会以后就开始闪退了(也可以使用cmd命令启动,启动方法:进入bin目录 activemq start即可)。
2、闪退以后尝试过重启,修改计算机名重新去官网下载安装包没用。(我使用的mq版本是 apache-activemq-5.11.1

二、排查问题

1、网上说有可能是jdk版本和ActiveMQ版本对不上的问题,这个因为之前能用直接排除这个可能。
2、环境问题,也不是。
3、最后冷静下来排查日志发现了错误:
解决ActiveMQ 启动时闪退问题:java.net.BindException: Address already in use_第1张图片
解决ActiveMQ 启动时闪退问题:java.net.BindException: Address already in use_第2张图片
终于定位了问题,是因为地址被使用,也就是端口占用。

三、解决方法

1、既然知道是端口占用那么首先打开cmd 输入命令netstat -ano查看所有端口
解决ActiveMQ 启动时闪退问题:java.net.BindException: Address already in use_第3张图片
然后找到日志中那个被占用的端口1883
2、输入命令netstat -aon|findstr “1883” 查询此端口状态,发现两个pid 都为1140的端口
解决ActiveMQ 启动时闪退问题:java.net.BindException: Address already in use_第4张图片
3、然后再输入tasklist|findstr "1140"查看是哪个进程再使用此端口,最后在进程中把erl.exe给关闭,再重新启动mq,启动成功!

你可能感兴趣的:(新手)