python 查看端口占用的java程序的路径

为了查看占用特定端口的Java程序的路径,我们需要查找正在监听该端口的Java进程,并尝试解析其启动命令行参数来找到相关的Java应用jar文件或类路径信息。这里同样使用psutil库来进行操作:

 

python

import psutil
import socket

def find_java_process_by_port(port):
    for proc in psutil.process_iter(["pid", "name", "exe", "cmdline"]):
        # 检查进程名称是否与Java相关
        if proc.info["name"].lower().startswith("java"):
            # 获取进程的网络连接
            connections = proc.connections(kind='inet')
            for conn in connections:
                if conn.status == 'LISTEN' and conn.laddr.port == port:
                    # 输出Java进程的基本信息
                    print(f"PID: {proc.info['pid']}")
                    print(f"Executable Path: {proc.info['exe']}")

                    # 解析命令行参数以寻找可能的.jar或.class路径信息
                    cmdline_args = proc.info['cmdline']
                    for arg in cmdline_args:
                        if arg.endswith('.jar') or arg.endswith('.class'):
                            print(f"Possible Java Application Path: {arg}")
                    return
    print("No Java process found listening on the specified port.")

# 查找占用特定端口(如8080)的Java进程
find_java_process_by_port(8080)

这个脚本首先查找所有名为“java”的进程,并检查它们的网络连接是否监听指定端口。一旦找到匹配的进程,它将输出Java虚拟机(JVM)的路径,并尝试从命令行参数中提取.jar.class文件的路径,作为可能的Java应用路径。

请注意,这只是一个基本的示例,实际情况可能会更加复杂。Java应用有可能通过复杂的脚本启动,或者打包成服务形式,这时单纯从命令行参数可能无法准确获得应用的实际路径。此外,还需要确保已安装psutil库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三希

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值