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

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

我如何找出已经在使用哪个进程,或者绑定(bind)到该端口的

在Ubuntu Karmic上,Netbeans 6.7.1

最佳答案

要查找监听端口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,该JavaDB是在任何IDE外部的命令行上启动的。

10-05 17:51