我正在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外部的命令行上启动的。