ホームページ >Java >&#&チュートリアル >Java は、さまざまなオペレーティング システム間でアクティブなプロセスとウィンドウの包括的なリストを取得するにはどうすればよいでしょうか?

Java は、さまざまなオペレーティング システム間でアクティブなプロセスとウィンドウの包括的なリストを取得するにはどうすればよいでしょうか?

DDD
DDDオリジナル
2024-12-14 14:15:12537ブラウズ

How can Java retrieve a comprehensive list of active processes and windows across different operating systems?

Java を使用してアクティブなプロセスとウィンドウの包括的なリストを取得する方法

問題:

現在実行中のプロセスと開いているウィンドウの列挙リストを取得するマルチプラットフォーム ソリューションを Java で考案し、 Windows の 'tasklist' 関数に似ています。

解決策:

Java は、基礎となるオペレーティング システムと対話するための堅牢なライブラリを提供しており、これにより、タスク リストのカタログを取得できます。ネイティブ コマンドを使用したアクティブなプロセスとウィンドウ。ここでは 2 つのアプローチを示します。

アプローチ 1: コマンドからプロセス リストを解析する

このアプローチでは、'ps' コマンド (ほとんどの Unix 系システムに存在します) を利用してリストを取得します。実行中のすべてのプロセス (関連する詳細を含む)。

try {
    String line;
    Process p = Runtime.getRuntime().exec("ps -e");
    BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
    while ((line = input.readLine()) != null) {
        System.out.println(line); //<-- Parse data here.
    }
    input.close();
} catch (Exception err) {
    err.printStackTrace();
}

アプローチ 2: Windows での Tasklist コマンドの使用

Windows ベースのシステムでは、「ps」コマンドは使用できません。代わりに、「tasklist」ユーティリティを使用してプロセス情報を取得できます。

Process p = Runtime.getRuntime().exec(System.getenv("windir") +"\system32\"+"tasklist.exe");

データの解析と処理

適切なコマンドを実行すると、次のことが可能になります。出力を解析して、プロセス ID、名前、ウィンドウ タイトルなど、特定のプロセスまたはウィンドウの詳細を抽出します。 Java の文字列解析機能と正規表現を利用すると、このタスクを簡素化できます。

以上がJava は、さまざまなオペレーティング システム間でアクティブなプロセスとウィンドウの包括的なリストを取得するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。