有没有办法找到java进程打开的端口,给定java中进程的进程ID? 需要使用java找到它,因为它必须是独立于平台的
给定进程id:输出该进程正在使用的任何端口/套接字连接。
给出的东西很少: 进程在同一个jvm中运行。 该进程只使用了一个端口/套接字, 给予Pid的。
无法执行ps -au | grep pid | ...
答案 0 :(得分:2)
答案是否定的。哪些进程具有哪些端口根本不是Java应用程序可用的信息。你需要JNI,这取决于操作系统。
答案 1 :(得分:1)
答案 2 :(得分:1)
答案是肯定的,具体取决于您的操作系统。
您需要找到适当的命令,例如在mac osx上,它是lsof -i
,然后使用Runtime
执行它并解析输出。
以下是一些可以执行此操作的基本代码:
Process p = Runtime.getRuntime().exec(new String[] { "lsof", "-i" });
InputStream commandOutput = p.getInputStream();