Java:检查哪些进程绑定到端口?

时间:2010-05-09 03:57:29

标签: java exception netbeans binding port

我正在Netbeans中开发一个应用程序,它正在使用JavaDB。我可以连接到它并执行查询而不会出现问题,但由于某种原因,Netbeans中的“输出 - JavaDB数据库进程”窗格一直显示

Security manager installed using the Basic server security policy.
Could not listen on port 1527 on host localhost:
 java.net.BindException: Address already in use

如何找出正在使用的流程,或绑定到该端口


在Ubuntu Karmic上,Netbeans 6.7.1

2 个答案:

答案 0 :(得分:13)

要查找侦听端口1527的进程的pid,请使用:

$ netstat -ap | grep 1527
tcp6       0      0 localhost:1527          [::]:*                  LISTEN      31962/java      

$ lsof -i :1527
COMMAND   PID   USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
java    31962 pascal   28u  IPv6 13413903      0t0  TCP localhost:1527 (LISTEN)

然后:

$ ps aux | grep 31962 | grep -v grep
pascal   31962  0.1  0.2 674936  4172 pts/1    Sl   May08   1:23 /usr/lib/jvm/java-6-sun/bin/java -classpath /usr/share/javadb/lib/derby.jar:/usr/share/javadb/lib/derbynet.jar:/usr/share/javadb/lib/derbytools.jar:/usr/share/javadb/lib/derbyclient.jar org.apache.derby.drda.NetworkServerControl start

而且我很确定你会发现你所发现的是与JavaDB相对应的Java进程的pid(我不知道除了JavaDB之外还有许多使用端口1527的进程)。你是怎么开始的?

PS:我正在使用JavaDB,我在命令行上启动,在任何IDE之外。

答案 1 :(得分:1)

两个可以帮助你的程序是'lsof'和'netstat',它们都可以提供这些信息。我会给你打电话给他们的参数,但是我使用我的超大iPhone来回答它,查找它太麻烦了。所以这留给读者练习; - )

相关问题