我正在使用 Intellij,尝试部署 Tomcat 应用程序,但每当我尝试运行它时,都会收到以下错误:
Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 1098; nested exception is:
java.net.BindException: Address already in use
现在我通过以下方式手动查找在该端口发生的过程:
lsof -i:1098
我找到了 java 进程并杀死了它:
ps aux | grep java
kill -9 20386
这很有效,但每次我打开 Intellij 时我都必须这样做。如果我想在不退出 Intellij 的情况下重新运行服务器,我不能,因为我会收到此错误。有谁知道永久修复这个而不是每次都手动杀死它?
原文由 carbon_ghost 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是由于
JMX
监控 Tomcat 实例。 Tomcat 将在端口 9999 上运行,因此当 JMX 想要开始检查关闭时它无法绑定到该端口。解决此问题的一种方法是定义您的
CATALINA_OPTS
环境变量。在
JAVA_OPTS
中设置这些属性,尝试在启动 tomcat 和关闭 tomcat 时启动 jmx 服务器。因此端口已在使用异常。您需要为CATALINA_OPTS
而不是JAVA_OPTS
设置这些属性。这只会在您启动 tomcat 时运行。为我修复的是
$HOME/.bashrc
我添加了这个导出:export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8999"
学分: https ://bowerstudios.com/node/636