Beh, il titolo riassume molto la domanda. L'unica cosa che ho trovato è this ma non sono sicuro se questa sia la strada da percorrere.Come rilevare tramite Java se un particolare processo è in esecuzione in Windows?
risposta
È possibile utilizzare l'utilità wmic controllare la lista dei processi in esecuzione.
si supponga di voler verificare se il processo explorer.exe delle finestre è in esecuzione:
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();
}
Vedi http://ss64.com/nt/wmic.html o http://support.microsoft.com/servicedesks/webcasts/wc072402/listofsampleusage.asp per qualche esempio di cosa si può ottenere da wmic ...
Grazie per quello, come ho detto nel mio commento all'inizio non ero abbastanza chiaro. :) – gmunk
E 'possibile quindi capire come uccidere un processo in esecuzione dall'ID di handle di Windows? – JamesC
Grazie per il bell'esempio. Esiste comunque un modo per gestire la piattaforma di questo problema in modo indipendente? Ho bisogno di questa funzionalità anche con Linux e Apple. – Socrates
os.name dovrebbe farlo. Maggiori informazioni here
Dipende da ciò che è necessario sapere per!
La maggior parte delle informazioni può essere derivata dalle proprietà di runtime predefinite, senza verificare effettivamente le proprietà del sistema operativo.
Date un'occhiata a ciò che http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#getProperties() dispone:
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
Si sta cercando di determinare se un processo è stato creato è ancora in esecuzione?
- Se disponi del PID, il link che hai postato lo farà.
- Se l'altro processo è anche il tuo (il tuo codice), puoi farlo ottenere un blocco esclusivo su un file; prova a bloccarlo dall'altro codice se riesce l'altro processo non è in esecuzione.
Non ho provato in sistemi non basati su Windows. forse la divisibilità PID 4 fornirà un indizio Maggiori informazioni su questo propery PID qui: About the pid of the process
e qui http://blogs.msdn.com/oldnewthing/archive/2008/02/28/7925962.aspx
- 1. Come scoprire se un processo è in esecuzione in C?
- 2. Come può il mio programma rilevare se è in esecuzione su un particolare dominio?
- 3. Come verificare se un processo è in esecuzione utilizzando Delphi?
- 4. Come rilevare se webpack-dev-server è in esecuzione?
- 5. Come rilevare se Vim è in esecuzione in modalità limitata?
- 6. Come rilevare se in esecuzione su localhost
- 7. PID dell'ultimo processo in esecuzione in Windows
- 8. PowerShell: se un processo non è in esecuzione, avviarlo
- 9. OSX: come rilevare se il controllo missione è in esecuzione?
- 10. Come rilevare se uno script PHP è già in esecuzione?
- 11. Come posso rilevare se l'IDE Delphi specifico è in esecuzione?
- 12. C#: come rilevare se lo screen reader è in esecuzione?
- 13. Esecuzione di un processo Java in Windows anche dopo che l'utente è disconnesso
- 14. Come verificare se un particolare servizio è in esecuzione in un computer remoto utilizzando PowerShell
- 15. Come creare un core dump anche se normalmente il processo è in esecuzione?
- 16. Come posso rilevare se la mia applicazione è in esecuzione su Windows 10
- 17. Qual è il modo corretto per rilevare se Ruby è in esecuzione su Windows?
- 18. Verificare se un servizio Windows è in esecuzione?
- 19. Come uccidere un albero processo in Windows
- 20. Come posso rilevare se sono in esecuzione nella console
- 21. Esecuzione di un'applicazione Java in un processo separato
- 22. Linux - Trova se il processo è pronto o in esecuzione
- 23. Rilevare se un'altra istanza dell'applicazione è già in esecuzione
- 24. Come rilevare se sono in esecuzione in mono-servizio?
- 25. controlla se qualche programma exe è in esecuzione su Windows
- 26. Posso determinare se Matlab è in esecuzione come con privilegi elevati in Windows?
- 27. È un processo in esecuzione su una macchina remota?
- 28. Come rilevare se è supportata un'interfaccia grafica?
- 29. Come si collega VisualVM a un semplice processo Java in esecuzione in un contenitore Docker
- 30. Come rilevare se è presente un microfono
domanda ambigua. Vuoi capire se il processo di Windows è un'app java o vuoi capire come può essere un'app Java se è in esecuzione su Windows? –
Con cosa devi lavorare? Un ID di processo? Il nome dell'eseguibile? Hai avviato il processo? Stai aspettando di vedere se è finito ancora? Fondamentalmente perché vuoi verificare se è in esecuzione. Esistono diverse tecniche a seconda della situazione. –
@Stephen C hai perfettamente ragione, non ero abbastanza chiaro! Voglio sapere come visualizzare a livello di programmazione se per esempio notepad.exe è in esecuzione o se firefox.exe è in esecuzione, ecc ... spero che lo risolva :) – gmunk