デスクトップベースのアプリケーションのインスタンスが実行されているかどうかを確認できるように、コードを使用してWindowsベースのシステムでタスクマネージャーのプロセスを取得しています。コードは正常に動作しています。これが私のコードです。
private static void getAppInstancesCountAlreadyRunning() throws Exception {
int isApplicationRunning = 0;
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) {
line = line.toLowerCase();
logger.info("....... line read ... "+line);
if (line.contains("AppNameHere")) {// || line.contains("javaw.exe")
logger.info("....... Already running @ " + line);
isApplicationRunning++;
}
}
input.close();
if (isApplicationRunning > 1) {
//Some code here....
}
}
問題: Windows XP および 7 を搭載したさまざまなシステムで試しましたが、1 つのシステムでプロセス リストを取得できません。
Process p = Runtime.getRuntime().exec(System.getenv("windir") + "/system32/" +
"tasklist.exe");
適切なリストを提供していません誰かが理由を教えてください。
前もって感謝します。