Pergunta

Em Java ou através de algum plug -in Eclipse, é possível encontrar um processo pelo nome sem Descendo para o código nativo? Especificamente, quero determinar se um navegador da Web está em execução e informe o usuário que pode precisar reiniciar o navegador.

Sei que o código nativo é sempre uma opção, mas quero evitar a configuração de outra biblioteca JNI, se puder evitá -la.

Foi útil?

Solução

Na verdade é uma pergunta duplicada, veja o original.

Você tem duas opções aqui, uma é executar a ferramenta de linha de comando que listará os processos em execução e analisará sua saída. Como mencionado por Jay no Linux, pode -se usar "ps", no Windows, você precisaria agrupar alguma ferramenta, uma porta de ps de gnuwin/cygwin/etc ou uma ferramenta nativa como Pslist, ou olhe para o amostra.

A segunda opção, que você já conhece é usar o JNI, mas você não precisa escrever seu código do zero, você pode considerar Jniwrapper. Ele fornece uma API Java fácil de usar para funções nativas comuns do sistema operacional. Eles também fornecem licenças gratuitas para projetos de código aberto.

Outras dicas

Não sei nenhuma maneira de obter uma lista de processos de execução diretamente do Java. Se você estiver no Linux, pode criar um processo que execute "PS", leia o InputStream do processo para interceptar os resultados e analisá -lo. Você não precisaria ir ao nível JNI para fazer isso: você pode executar um comando Shell com processo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top