Domanda

In Java o attraverso qualche plugin di Eclipse, è possibile trovare un processo in base al nome senza di scendere a codice nativo? In particolare, voglio per determinare se un browser web è in esecuzione e consentire all'utente di sapere che potrebbe avere bisogno di riavviare il browser.

Lo so codice nativo è sempre un'opzione, ma voglio evitare la creazione di un'altra libreria JNI se posso evitarlo.

È stato utile?

Soluzione

In realtà è una domanda duplicato, vedere la originale .

Hai due opzioni qui, uno è quello di eseguire lo strumento da riga di comando che elenca i processi in esecuzione e analizzare la sua produzione. Come già detto da Jay su una Linux possono utilizzare "ps", su Windows si avrebbe bisogno di riunire qualche strumento, una porta di ps da GNUWin / cygwin / etc o uno strumento nativo come PsList , o guardare il esempio .

La seconda opzione, che già si conosce è quello di utilizzare JNI, tuttavia non è necessario scrivere il codice da zero, si può considerare JNIWrapper . Esso fornisce un facile da usare API Java per le funzioni più comuni del sistema operativo nativo. Essi prevedono anche licenze gratuite per progetti Open Source.

Altri suggerimenti

Non conosco un modo per ottenere un elenco dei processi in esecuzione direttamente da Java. Se siete su Linux, è possibile creare un processo che esegue "ps", leggere InputStream del processo di intercettare i risultati, e analizzarlo. Non avrebbe bisogno di andare fino al livello JNI per farlo. È possibile eseguire un comando shell con Process

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top