2017-04-21 2 views
-2

Javaプログラムでは、同じ単語(たとえば「チーズ」)を含む名前を持つすべてのプロセスを取得し、それらを終了したいと考えています。Javaで同じ単語を含む名前を持つすべてのプロセスを取得します。

私はstackoverflowの上での検索が、私が試したすべての可能性は動作しません:/

私は、タスクを殺すために方法を知っているが、すべてのプロセスが同じ単語を含む名前を持つWICH取得しませんか。

どうすればいいですか?

楽しい一日を! :D

(私の悪い英語のため申し訳ありませんが、私は若いんだと私はフランス人だ:/)

+0

ようこそ。いくつかのコードを投稿してください。さもなければあなたは下の票を集め、SOはコード作成サービスではないと言っているコメントを得るでしょう。 – BWMustang13

+0

あなたはこれまでに何を試しましたか?何が問題なのですか?どのオペレーティングシステムを使用していますか?英語が悪いのは問題ではありませんが、あなたの問題についての情報が不十分です。 – halileohalilei

+0

ステップ1:実行中のすべてのプロセスのリストを取得します。ステップ2:正規表現を使用して単語に一致するものを探します。ステップ3:一致するプロセスを強制終了します。ステップ4:あなたの正規表現で間違いを犯し、マシン上のすべてのプロセスを殺したように叫ぶ...(私はちょうどそれがおそらく最初の場所では悪い考えだと言っている) – Imus

答えて

0

注:Windowsコンピュータ上でのみ動作。

これは、名前にwordを持つすべてのプロセスを含むリストを作成します。

public static ArrayList<String> getProccessWithString(String word){ 
     ArrayList<String> list = new ArrayList<String>(); 
    try { 
     String line; 
     Process p = Runtime.getRuntime().exec(System.getenv("windir") +"\\system32\\"+"tasklist.exe"); 
     BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream())); 
     while ((line = input.readLine()) != null) { 
      if(line.indexOf(word) > 0){ 
       list.add(line); 
      } 
     } 
     input.close(); 
    } catch (Exception err) { 
     err.printStackTrace(); 
    } 
    return list; 
    } 

そしてそれは、このように呼ばれている:taskkillがあるので、あなたが管理者としてこのプログラムを実行する必要があります

for(int i = 0; i < list.size(); i++){ 
Runtime.getRuntime().exec("taskkill /F /IM " + list.get(i)); 
} 

ArrayList<String> list = getProccessWithString("word"); 

その後、あなたがそれらを殺すためにループを使用することができます昇格したコマンド。

+0

最後のコードはOS固有のようです。 Windowsですべてのコードが実行されるわけではありません。 –

+0

@AndyThomas私は知っていますが、あなた自身のOSの外で作業するのは難しいです:/ –

+0

ありがとう! :) –

関連する問題