admin 管理员组

文章数量: 1184232

mac上解决java.rmi.server.ExportException: Port already in use: 1099; nested exception is: java.net.BindException: Address already in use (Bind failed)

tomcat启动报如下的错误:

java.rmi.server.ExportException: Port already in use: 1099; nested exception is: java.net.BindException: Address already in use (Bind failed)

解决方法有两种

第一种:换其他的端口再次启动,例如:换1098端口,如果你不想换其他端口,则见第二种方法

第二种

第一步:使用lsof -i tcp:1099 查看时那个应用占用了此端口

第二部:使用kill pid 即可,这里的pid是第一步所查询到结果
---------------------

1、在windows下如何查看80端口占用情况?是被哪个进程占用?如何终止等.
这里主要是用到windows下的DOS工具,点击"开始"--"运行",输入"cmd"后点击确定按钮,进入DOS窗口,接下来分别运行以下命令:
>netstat -aon | findstr "80"
Proto  Local Address          Foreign Address        State            PID
====  ============      ==============  ==========  ======
TCP    0.0.0.0:80                    0.0.0.0:0                LISTENING      1688
可以看出80端口被进程号为1688的程序占用.
>tasklist | findstr "1688"
图像名                                                PID            会话名                    会话#       内存使用
========================= ====== ================ ======== ============
inetinfo.exe                                        1688           Console                      0              2,800 K
很明显,是inetinfo占用了80端口;inetinfo.exe主要用于支持微软Windows IIS网络服务的除错,这个程序对你系统的正常运行是非常重要的.
当然,并不是只有inetinfo.exe进程会占用80端口,这只是我机器上的情况.如果你并不了解此进程是干什么用的,千万不要盲目地将其kill掉,最好先百度或Google搜索一下;当然如果你很了解它,并确定可以终止,那么继续下面的命令.
>taskkill /pid 1688 /F
成功: 已终止 PID 为 1688 的进程。
如果你很熟悉此进程,并确定可以终止,那么就直接使用上面的命令把PID为1688的进程终止.(这一步同样可以在任务管理器中执行,inetinfo.exe就是任务管理器中的映像名称,选中它,点击"结束进程"即可)
>tasklist | findstr "1688"
再次确认是否成功终止,如果成功终止此次执行命令后应返回空.

本文标签: 使用 端口 编程