Java: Проверьте, какие процессы связываются с портом?

Я разрабатываю приложение в Netbeans, и он использует JavaDB. Я могу соединиться с ним и выполнить запросы без проблем, но по некоторым причинам, область "Output - JavaDB Database Process" в Netbeans продолжает отображаться

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, Netbeans 6.7.1

6
задан bguiz 9 May 2010 в 04:18
поделиться

2 ответа

Чтобы найти pid процесса, слушающего порт 1527, используйте:

$ 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

И я почти уверен, что то, что вы найдете, будет pid процесса Java, соответствующего JavaDB (я не знаю много процессов, использующих порт 1527, кроме JavaDB). Как вы на самом деле запустили его?

PS: Я использую JavaDB, который запускаю в командной строке, вне какой-либо IDE.

13
ответ дан 8 December 2019 в 17:19
поделиться

Две программы, которые могли бы вам помочь, это 'lsof' и 'netstat', обе они могут предоставить эту информацию. Я бы дал вам аргументы для их вызова, но я использую свой огромный iPhone для ответа, и это слишком громоздко для поиска. Так что это остается в качестве упражнения для читателя ;-)

1
ответ дан 8 December 2019 в 17:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: