端口绑定“;“问题”;使用Eclipse、Java和;窗户

端口绑定“;“问题”;使用Eclipse、Java和;窗户,java,eclipse,jetty,Java,Eclipse,Jetty,我使用eclipse开发了一个基于web的java应用程序。我的正常工作是抓取下一个任务跟踪记录单。如果有需要纠正的问题,我在本地运行应用程序,加载Jetty Web服务器,并绑定到端口8080。在验证了问题之后,我修复了问题,重建并重新运行应用程序。问题是,我经常忘记在重新运行之前关闭jetty服务器。这将生成Java绑定错误: WARNING: failed SocketConnector@0.0.0.0:8080: java.net.BindException: Address alrea

我使用eclipse开发了一个基于web的java应用程序。我的正常工作是抓取下一个任务跟踪记录单。如果有需要纠正的问题,我在本地运行应用程序,加载Jetty Web服务器,并绑定到端口8080。在验证了问题之后,我修复了问题,重建并重新运行应用程序。问题是,我经常忘记在重新运行之前关闭jetty服务器。这将生成Java绑定错误:

WARNING: failed SocketConnector@0.0.0.0:8080: java.net.BindException: Address already in use: JVM_Bind
我在Windows中工作,想看看是否有可以运行的命令来解除端口绑定,但在那里找不到答案。除了记住在启动新的jetty实例之前关闭旧的jetty实例之外,这里有人对如何解决我的问题有好的想法吗

谢谢,
杰伊

你在那里回答了你自己的问题。。。由于不能在同一端口上运行两个应用程序,因此需要记住在启动新应用程序之前关闭旧应用程序

您提到应用程序启动Jetty实例,启动应用程序之前是否可以检查它是否已经在运行?我想我和你不太一样

然而,有一些巧妙的方法可以“热部署”您的更改——一旦您运行了appserver,您就可以对JSP文件或Java类进行更改,它将自动部署这些更改

您是否在使用类似的集成?如果没有,你可能想试试

我也想到了,虽然我不是它的超级粉丝,但有些人真的很喜欢它

但在大多数情况下,请记住停止并重新启动

  • 使用
    netstat-ap | grep8080
    查找哪个进程正在使用该端口。(什么,你没有在Windows上安装合适的grep?每个人都应该!)
  • 使用
    -Djetty.port=
    更改Jetty使用的默认端口号

  • 要干净地解除端口绑定,通常需要停止保持端口打开的进程(否则,该进程可能会因奇怪的通信错误而死亡)

    您可以修改一个短批处理文件来检测端口是否正在使用,并终止Jetty进程。假设您的路径中有可用的端口(例如,在C:\Windows下),下面的示例将终止保持端口8080打开的进程:

    FOR /F "skip=4 tokens=2,5" %%G IN ('netstat -ano') DO (
      IF "%%G"=="127.0.0.1:8080" pskill %%H
    )
    

    您推荐什么样的grep安装?免费是首选。@Jay、Cygwin和msysgit都包括grep的,都很好用。netstat-aon | find/i“监听”在常规win命令行
    grep
    中工作?您可以在此处使用windows“
    findstr
    作为替代品。