那么标题几乎总结了这个问题。我发现的唯一的事情是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