那麼標題幾乎總結了這個問題。我發現的唯一的事情是this 但我不知道如果這是要走的路。如何通過Java檢測某個特定進程是否在Windows下運行?
9
A
回答
12
可以使用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();
}
的,你可以從WMIC得到什麼一些示例見http://ss64.com/nt/wmic.html或http://support.microsoft.com/servicedesks/webcasts/wc072402/listofsampleusage.asp ...
2
os.name應該這樣做。更多信息here
2
取決於你需要知道它!
大多數信息都可以從默認的運行時屬性派生而來,而不需要實際檢查操作系統屬性。
看一看什麼http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#getProperties()規定:
java.version Java Runtime Environment version
java.vendor Java Runtime Environment vendor
java.vendor.url Java vendor URL
java.home Java installation directory
java.vm.specification.version Java Virtual Machine specification version
java.vm.specification.vendor Java Virtual Machine specification vendor
java.vm.specification.name Java Virtual Machine specification name
java.vm.version Java Virtual Machine implementation version
java.vm.vendor Java Virtual Machine implementation vendor
java.vm.name Java Virtual Machine implementation name
java.specification.version Java Runtime Environment specification version
java.specification.vendor Java Runtime Environment specification vendor
java.specification.name Java Runtime Environment specification name
java.class.version Java class format version number
java.class.path Java class path
java.library.path List of paths to search when loading libraries
java.io.tmpdir Default temp file path
java.compiler Name of JIT compiler to use
java.ext.dirs Path of extension directory or directories
os.name Operating system name
os.arch Operating system architecture
os.version Operating system version
file.separator File separator ("/" on UNIX)
path.separator Path separator (":" on UNIX)
line.separator Line separator ("\n" on UNIX)
user.name User's account name
user.home User's home directory
user.dir User's current working directory
0
您正在試圖確定,如果你創建了一個進程仍在運行?
- 如果你有PID你發佈的鏈接將做。
- 如果其他進程也是你自己的(你的代碼),你可以讓它獨佔一個文件鎖;嘗試從其他代碼鎖定它,如果它成功,其他進程沒有運行。
0
我還沒有在非基於Windows的系統中嘗試過。 也許PID可分4將提供一個線索 這個PID屬性格式在此處瞭解詳情:About the pid of the process
這裏 http://blogs.msdn.com/oldnewthing/archive/2008/02/28/7925962.aspx
相關問題
- 1. 檢查某個特定進程是否在運行C++的windows上運行
- 2. 如何檢測某個特定按鍵是否被按下?
- 3. 如何檢查某個進程是否正在運行或不
- 4. 檢查某個特定應用程序是否在運行iOS?
- 5. 檢測Windows進程和應用程序是否正在運行
- 6. 如何檢查某個進程是否正在運行 - java on linux
- 7. 如何檢測是否在Windows Metro應用程序進程中運行?
- 8. 如何檢查進程是否在Windows上運行?
- 9. 如何檢測特定的Delphi IDE是否正在運行?
- 10. 如何在安裝過程中檢查某個程序是否正在運行?
- 11. 檢測Windows是否在Parallels中運行?
- 12. 如何檢測某個特定按鈕是否已被點擊?
- 13. C++檢查特定進程是否正在運行
- 14. 如何檢查特定進程是否在遠程PC /服務器上運行?
- 15. 如何知道某個進程是否正在運行?
- 16. 通過使用PID檢查進程是否正在運行
- 17. Oracle PL/SQL:如何檢測過程是否已經在運行?
- 18. android如何檢測應用程序是否在過去運行
- 19. 如何定期檢查程序是否在Windows中運行?
- 20. Java - 如何檢查另一個(非Java)進程是否在Linux上運行
- 21. 檢測是否在launchd下運行
- 22. 檢測一個進程是否仍在運行
- 23. 通過Shell腳本確定Linux進程是否在給定參數下運行
- 24. 如何檢測Node.js腳本是否通過shell管道運行?
- 25. 如何檢測腳本是否通過計劃任務運行
- 26. 檢測一個線程是否正在運行java fx
- 27. 如何檢查某個特定進程是否開始運行以及何時停止
- 28. 如何查看另一個進程是否在Windows上運行?
- 29. 如何通過批處理腳本檢查進程是否正在運行
- 30. 如何檢測應用程序是否在Windows RT或Windows 8 Pro上運行?
不明確的問題。你想知道Windows進程是否是一個Java應用程序,或者你想知道一個Java應用程序可以判斷它是否在Windows上運行? –
你有什麼合作?進程ID?可執行文件的名稱?你是否開始這個過程?你是否在等待看看它是否完成?基本上你爲什麼要檢查它是否在運行。根據情況有不同的技術。 –
@Stephen C你完全正確,我還不夠清楚!我想知道如何以編程方式查看是否例如notepad.exe正在運行,或者如果firefox.exe正在運行等...希望清除它:) – gmunk