【java调试】根据jps显示的pid,无法通过netstat找到对应端口?

这样,我在电脑上写了一个java程序,使用javac编译运行,然后jps显示如下

 [root@jamie-hadoop ~]# jps
3851 org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar
8700 -- process information unavailable
6461 Hanoi
6558 Jps

Hanoi是我的程序,我现在通过netstat -aux | grep 6461想查看对应的段口号,但是结果如下

 [root@jamie-hadoop ~]# netstat -aux | grep 6461
[root@jamie-hadoop ~]# 

没有任何内容,然后我换了一个命令lsof -i | grep 6461
依旧不行,这是为什么?不是pid绑定在端口号上么?

你确认你的程序(Hanoi)使用了网络(Socket)编程么?如果没有的话,这个进程就不会占用端口啊。

netstat -natp | grep 6461

netstat -antup | grep pid
会列出该pid占用的所有端口

adview@avm01:~$ jps
3261 SecondaryNameNode
adview@avm01:~$ sudo netstat -natp |grep 3261
tcp 0 0 0.0.0.0:50090 0.0.0.0:* LISTEN 3261/java

tcp 0 0 192.168.***:10561 192.168.***:9000 ESTABLISHED 3261/java

方法是没问题的,除非系统不一样