S S*_*ngh 8 java networking admin
我在控制台上遇到异常,它是:
java.lang.Exception: Port 8083 already in use.
Run Code Online (Sandbox Code Playgroud)
如何解决此异常?如果我将获得使用8083端口的服务,那么我可以停止该服务,这样我就可以解决这个问题.
谢谢你的帮助!
Gra*_*ray 11
java.lang.Exception:端口8083已在使用中.
该错误意味着另一个应用程序已经绑定了该端口,因此您无法使用它.通常,这意味着服务器正在运行(或正在退出),但仍然打开特定端口.当您尝试关闭一台服务器并启动新版本时,通常会出现此错误,但第一台服务器在启动新服务器时并未完全关闭.您需要找到有问题的服务器,您可能必须使用kill -9或其他东西杀死它.
找出哪个应用程序打开端口的好工具是lsof.这至少应该适用于大多数Unix(Linux)和MacOSX.
lsof -i :8083
Run Code Online (Sandbox Code Playgroud)
lsof用于LiSting系统上的打开文件,但-i选项是用于Internet地址:
-i [i] This option selects the listing of files any of whose Internet
address matches the address specified in i.
[46][protocol][@hostname|hostaddr][:service|port]
Run Code Online (Sandbox Code Playgroud)
抛出异常是因为您尝试绑定到另一个进程已在使用的端口.
netstat -a从命令行使用将显示打开端口列表以及正在使用它们的进程.比你可以杀了它.
更新:
在Windows上,您可以使用netstat -ao列出所有正在使用的端口以及拥有该连接的进程ID.
在Linux上,您可以使用netstat -p列出进程ID /程序名称.
我偶尔会用JBoss服务器得到这个.您需要重新启动Java并不直观,但上述方法不起作用.
对于Mac OS X:
慢
快速
ps aux | grep 'java' 列出当前的Java进程及其ID.
kill -9 process_id_goes_here
| 归档时间: |
|
| 查看次数: |
24587 次 |
| 最近记录: |