2017-04-09 38 views
1

我想知道如何找到另一個程序的進程ID。 (非java)Java:我如何找到另一個程序的進程ID?

當我開始編程我的程序時,我以爲一個.exe的進程保持不變,但是當我的程序失敗時,我重新檢查並意識到它發生了改變!

我已經嘗試了很多不同的方式從互聯網上,但他們都沒有一個非java程序作爲目標。

這裏是我當前的代碼:

try { 
         System.out.println("DefaultButton Pressed"); 
         Runtime.getRuntime().exec("taskkill /F /PID "+processID); 
        } catch (IOException e) { 
         // TODO Auto-generated catch block 
         System.out.println("Failed to kill the process"); 
         e.printStackTrace(); 
        } 

此代碼改掉當我按下一個按鈕

我有想抓PID碼殺過程,但它也失敗了

我已經試過這個來獲取PID,但它抓住了我的進程的ID(杜)。我一直在試圖將代碼更改爲不同的非Java程序,但代碼仍然無法正常工作。

String processID= ManagementFactory.getRuntimeMXBean().getName(); 
System.out.println("Process ID for this app = " + processID); 

再次這是代碼來抓自己的代碼。

我無法調整它的工作。

我能否獲得另一個非java進程的PID?

編輯1 這是我的新代碼

​​

此代碼是在我的其他代碼。其他代碼來自上面的代碼。

我覺得類型Processint processID = Integer.parseInt(processIdRaw);

工作,我已經添加了.parseInt,因爲我雖然它會發現從輸出的數量。

錯誤之前因爲類型的Process

回答

0

我無法找到一個方法,使PID的工作,但!

Runtime.getRuntime().exec("taskkill /F /IM <processname>.exe") 

作品!

try { 
         System.out.println("DefaultButton Pressed"); 
         Runtime.getRuntime().exec("taskkill /F /IM <processname>"); 
        } catch (IOException e) { 
         // TODO Auto-generated catch block 
         System.out.println("Failed to kill the process"); 
         e.printStackTrace(); 
        } 

要查找的進程名

1:運行要殺死

2方案:運行CMD

3:執行tasklist

4:抓鬥進程名稱

相關問題