我正在使用IntelliJ Idea Community Edition IDE,我正在尝试通过命令行运行带有Jetty的Maven WebApp。我在RedHat盒子上
我运行此命令:
mvn clean install -P deployJetty -Djetty.port=8083
我收到了这个错误:
Listening for transport dt_socket at address: 5005
Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 1099; nested exception is:
java.net.BindException: Address already in use
有趣的是,当我关闭IntelliJ Idea时,1099端口被释放。 我找不到Idea为何以及如何使用此端口的原因。
有什么想法吗?谢谢。
注意:作为一种解决方法,我正在关闭Idea,运行Jetty然后打开Idea(我想强制它选择另一个端口)
答案 0 :(得分:22)
我确信Intellij Idea内部不使用1099端口。我已经将这个PORT用于Tomcat。我建议检查您安装的任何想法插件是否在此端口上运行。大多数操作系统都可以为您提供在该端口上运行的应用程序名称。
例如: lsof -w -n -i tcp:8080 会在我的linux机器上运行 8080 上运行的应用程序。
希望这有帮助。
答案 1 :(得分:7)
转到终端并终止会话
ps -aef | grep 1099
kill -9 PID
答案 2 :(得分:1)
在我的Mac上有一个名为" fsnotifier"正在使用端口1099.谷歌这表明它是一个IntelliJ文件系统观察者。通过为JMX使用不同的端口来解决。
答案 3 :(得分:1)
确保在/etc/hosts
文件中定义了localhost,并且只定义了一次
localhost 127.0.0.1
它将maven进程保留在intelliJ挂起,即使在将jmx端口更改为不同之后,也会导致port 1099 already in use
错误。
答案 4 :(得分:0)
在我的情况下,我与在IDEA中启动的JBoss实例断开连接,服务器继续运行,因此使用1099端口用于JMX。
您可以使用该端口终止服务器进程(它将是使用大量内存的java进程)或创建远程调试配置,以便在您不想重新启动时使用服务器。对本地和远程调试配置使用相同的调试端口。
答案 5 :(得分:0)
因为使用终端很容易解决。 打开终端并输入以下内容。
fuser 1099/tcp
如果进程使用上述端口,则应返回类似这样的输出。
1099/tcp: 2222
最后一列值(2222)引用到进程ID( PID )。
只需杀死,如下所示。
kill -9 2222
现在您可以开始调试了。
答案 6 :(得分:0)