我是Java EE 7的新手。
我有带有GlassFish 4.0和Java EE 7的Netbeans 7.4。在一台64位Windows 8.1 Pro计算机中。我想启动GlassFish 4.0 Server,所以我单击了Netbeans中的“服务”选项卡,然后在“服务器”选项中,右键单击了GlassFish Server 4.0,然后单击了“启动”。
当我这样做时,我收到以下消息:“无法启动GlassFish Server 4.0:服务器未运行时,HTTP或HTTPS监听器端口已被占用”。我也有IIS服务器,但是我停止了它。停止IIS之后,我尝试再次启动GlassFish,但它向我显示了相同的消息。
在Netbeans中也有一个名为输出-Java DB数据库进程的窗口,它向我显示了以下内容:
Tue May 06 22:03:11 GMT-05:00 2014 : Security manager installed using the Basic server security policy.
Tue May 06 22:03:11 GMT-05:00 2014 Thread[main,5,main] java.io.FileNotFoundException: D:\Users\Juan Jose\.netbeans-derby\derby.log (Access is denied)
Tue May 06 22:03:12 GMT-05:00 2014 : Could not listen on port 1527 on host localhost:
java.net.BindException: Address already in use: JVM_Bind
Tue May 06 22:03:12 GMT-05:00 2014 : Could not listen on port 1527 on host localhost:
java.net.BindException: Address already in use: JVM_Bind
我在Windows中运行了netstat -a来查看1527端口发生了什么,并且该端口处于监听模式。
那么我怎么知道哪个应用程序或进程正在占用1527端口呢?
谢谢你的帮助 !!
最佳答案
要查找保持繁忙端口的process1,请尝试以下命令:
netstat -ano | find "1527"
这将显示带有端口和进程标识符的一行。例如。:
TCP 127.0.0.1:1527 0.0.0.0:0 LISTENING 2268
获得进程ID(例如
2268
)后,运行以下命令释放端口(这将终止该进程):taskkill /F /PID 2268
现在,尝试启动Glassfish。
在Linux上:
lsof -Pnl +M -i6 | grep 1527
产生:
java 31139 1001 32u IPv6 114916062 0t0 TCP 127.0.0.1:1527 (LISTEN)
杀死:
kill -9 31139
1如果您想了解关联的程序,请参见How do I find out what service is using a certain port?