【问题标题】:How to check if a process is running on a client's computer (on server-side)? [Java]如何检查进程是否在客户端计算机(服务器端)上运行? [爪哇]
【发布时间】:2014-07-30 20:59:10
【问题描述】:

那么,如何检查一个进程是否在 Java 中运行?

我正在运行一些游戏的私人服务器...

我得到了玩家的 IP 和他们用来连接的端口..

提前致谢。

编辑:

我使用的是 Windows 7,我需要再次获取客户端的进程信息

然后判断进程是否在运行,而不是我服务器的电脑

进程.. :/

有什么想法吗? :(

【问题讨论】:

标签: java process ip client port


【解决方案1】:

你可以使用

Process proc = Runtime.getRuntime().exec("ps -e");

然后使用 proc.getInputStream() 读取命令的输出。

顺便说一句,上面的命令是针对 linux 的

对于 Windows,我相信命令是“任务列表”

【讨论】:

    【解决方案2】:

    您可以使用 wmic 实用程序检查正在运行的进程列表。 假设您要检查 windows 的 explorer.exe 进程是否正在运行:

            String line;
            try {
                Process proc = Runtime.getRuntime().exec("wmic.exe");
                BufferedReader input = new BufferedReader(new InputStreamReader(proc.getInputStream()));
                OutputStreamWriter oStream = new OutputStreamWriter(proc.getOutputStream());
                oStream .write("process where name='explorer.exe'");
                oStream .flush();
                oStream .close();
                while ((line = input.readLine()) != null) {
                    System.out.println(line);
                }
                input.close();
            } catch (IOException ioe) {
                ioe.printStackTrace();
            }
    

    请参阅 http://ss64.com/nt/wmic.htmlhttp://support.microsoft.com/servicedesks/webcasts/wc072402/listofsampleusage.asp 了解您可以从 wmic 获得什么的一些示例...

    【讨论】:

    • 您假设 OP 正在运行窗口,但事实并非如此。
    猜你喜欢
    • 2015-11-23
    • 2016-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 2012-11-12
    • 2017-10-16
    • 1970-01-01
    相关资源
    最近更新 更多