我正在使用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(我猜它强迫它选择另一个端口)
我确信Intellij Idea内部不使用1099端口。我已经将这个PORT用于Tomcat。我建议检查你安装的任何想法插件是否在这个端口上运行。大多数操作系统都可以为您提供在该端口上运行的应用程序名称。
例如:lsof -w -n -i tcp:8080会给我在我的linux机器上运行8080的应用程序。
希望这可以帮助。
转到终端并终止会话
ps -aef | grep 1099
kill -9 PID
在我的Mac上,一个名为“fsnotifier”的进程正在使用端口1099.谷歌就此表明它是一个IntelliJ文件系统观察者。通过使用JMX的不同端口解决。
确保在/etc/hosts
文件中定义了localhost,并且只定义了一次
localhost 127.0.0.1
即使在将jmx端口更改为不同的情况之后,它仍然在智能挂起的maven进程中导致port 1099 already in use
错误。
在我的情况下,我与我在IDEA中启动的JBoss实例断开连接,并且服务器继续运行,因此使用1099端口用于JMX。
您可以使用该端口终止服务器进程(它将是使用大量内存的java进程)或创建远程调试配置,以便在您不想重新启动服务器时使用。对本地和远程调试配置使用相同的调试端口。
因为终端很容易解决。打开终端并输入以下内容。
fuser 1099/tcp
如果进程使用上面的端口,它应该返回这样的输出。
1099/tcp: 2222
最后一列值(2222)被称为进程ID(PID)。
只需杀死它如下。
kill -9 2222
现在您可以开始调试了。