| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/02/2007 23:17:25
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
Olá,
Tenho uma dúvida que seria muito simples de resolver com código nativo mas é exatamente disseo que estou fugindo.
Existe algum componente ou coisa do tipo que me liste todos os processos sendo executados no sistema? Basicamente eu preciso de uma lista com todos os programas que o usuário atual está executando neste instante, em Java SE. Pode ser um objeto cheio de frescuras ou apenas uma String com o título da Janela, funcionando em Windwos, mac e Linux.
Qualquer versão de Java tá valendo, qalquer biblitoeca de terceiros também (desde que seja 100% Java).
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/02/2007 09:19:58
|
maquiavelbona
JWizard
![[Avatar]](/images/avatar/24bea84d52e6a1f8025e313c2ffff50a.jpg)
Membro desde: 29/06/2006 09:06:51
Mensagens: 2447
Localização: São Paulo - SP
Offline
|
Opa!
Passei parte do feriado procurando isso também e também não achei. Só achei que sem código nativo não tem como. Pelas regras da JVM, realmente não teria acesso a nada que não fosse do domínio dela, então como conseguiria pegar os processos externos?
Até!
|
----------------------------------------------------------------
"Within a few years a simple and inexpensive device, readily carried about, will enable one to receive on land or sea the principal news, to hear a speech, a lecture, a song or play of a musical instrument, conveyed from any other region of the globe. "
Nikola Tesla - A means for furthering Peace (1905)
"Gedanken ohne Inhalt sind leer, Anschauungen ohne Begriffe sind blind."
Immanuel Kant - Kritik der reinen Vernunft (1781) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/02/2007 09:41:20
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Acho que você vai ter de escrever aquele tipo de programas assim, com um monte de "Runtime.exec":
É óbvio que alguém já deve ter feito isso antes, é questão de procurar.
| Nome do arquivo |
ps.vbs |
Download
|
| Descrição |
Gets CPU Information for a machine - (C) 1999 Microsoft Corp. |
| Tamanho |
28 Kbytes
|
| Baixado: |
146 vez(es) |
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/02/2007 09:44:51
|
maquiavelbona
JWizard
![[Avatar]](/images/avatar/24bea84d52e6a1f8025e313c2ffff50a.jpg)
Membro desde: 29/06/2006 09:06:51
Mensagens: 2447
Localização: São Paulo - SP
Offline
|
Então, mas o que eu estava procurando e que eu acho que pcalcado também era uma classe que não fosse executar "ps"s da vida e sim algo já em java.
E para pegar os processos rodando em linux, eu acho melhor listar a pasta "/proc". Ali tem tudo o que você pode precisar dos processos sem precisar saber dos parâmetros.
Até!
|
----------------------------------------------------------------
"Within a few years a simple and inexpensive device, readily carried about, will enable one to receive on land or sea the principal news, to hear a speech, a lecture, a song or play of a musical instrument, conveyed from any other region of the globe. "
Nikola Tesla - A means for furthering Peace (1905)
"Gedanken ohne Inhalt sind leer, Anschauungen ohne Begriffe sind blind."
Immanuel Kant - Kritik der reinen Vernunft (1781) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/02/2007 10:04:12
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
O /proc está disponível em Linux, e acho que também nas versões mais novas do Solaris. (Eles adaptaram bastante coisa do Linux, como a interface Gnome, e se não me engano há um módulo de compatibilidade com o Linux que, instalado, permite rodar vários programas Linux sob o Solaris - embora seja preferível recompilar o programa, se possível.)
No MacOS X, ps usa o recurso "setuid", portanto ele pode acessar coisas que um usuário normal não pode.
Um usuário normal pode listar várias coisas do /proc, o que é bastante útil. Dessa forma, o ps não precisa ter seu bit "setuid" ligado.
Infelizmente, o /proc não está disponível no MacOS X.
United Linux 1.0:
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/02/2007 22:41:38
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
Nash, um parser de linha de comando dá pro gasto, queria apenas saber se existe alguma forma mais padrão para fazer isso.
Já que estamos aqui, este código é muito bom para passar a idéia mas antes que alguém leia este tópico e faça algo parecido: Usem polimorfismo, pelo amor de Zahl. 'else if' e 'switch/case' são bad smells de programação altamente procedural.
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/02/2007 06:22:54
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Tá bom, algo como
|
|
|
 |
|
|