Andei pesquisando sobre gerenciamento de MEMÓRIA em JAVA, já procurei em vários locais, até mesmo aqui no GUJ, mais tudo que encontrei fui alguns conceitos e códigos que não funcionaram.
A idéia e a seguinta:
Listar os processo (Windows/Linux) em uma tabela. A idéia é mostrar em tempo real, onde os processos que forem sendo aberto vai sendo mostrados na tabela.
Poder excluir o processo
Poder abrir novos processos pela própria aplicação.
A idéia pode ser um pouco complexa, mais se alguém puder me ajudar de alguma forma eu ficaria GRATO!
Kanin Dragon, obrigado pela dica…
Já pesquisei aqui e verifiquei o uso da classe, era realmente o que eu precisava.
Alguem sabe como posso matar esses processo pelo PID?
M
marcobiscaro2112
Acredito que Java não seja a linguagem para isso.
Para usar Java você teria que:
Procurar bibliotecas JNA que permitam acessar esse tipo de informação (informações sobre processos, terminar processos, novo processo, etc.)
Usar comandos próprios do S.O. usado para resgatar os dados que você precisa, tratá-los e exibi-los. Exemplo: no Linux, você executaria o comando ‘ps aux’, trataria os dados e exibiria. Para terminar um processo, executaria 'kill ’ e assim por diante.
J
juliocbq
Você não pode matar processos nativos de dentro da jvm. No máximo pode enxergar os quê estão nela. O próprio sistema operacional já cuida de escalonar e endereçar esses processos. Uma boa idéia é aprender uma linguagem quê suporte ponteiros para se ter a noção de gerenciamento de memória.
ViniGodoy
Se quiser instrumentar do java outros códigos java, dê uma olhada no pacote java.lang.instrument
Se quiser fazer um gerenciador genérico, use C++.
J
juliocbq
ViniGodoy:
Se quiser instrumentar do java outros códigos java, dê uma olhada no pacote java.lang.instrument
Se quiser fazer um gerenciador genérico, use C++.
Por isso eu sou contra lecionar java nas universidades antes de c ou pascal. Só com esse tipo de linguagem se aprende como a máquina funciona.
Kanin_Dragon
emerson_web,
Você pode utilizar a classe Process em conjunto com a classe RunTime, com essas 2 classes você pode consultar os processos inclusive finalizar o processo pelo PID.
Abs,
J
juliocbq
Kanin Dragon:
emerson_web,
Você pode utilizar a classe Process em conjunto com a classe RunTime, com essas 2 classes você pode consultar os processos inclusive finalizar o processo pelo PID.
Abs,
Mas isso não é uma solução adequada. Por exemplo se faltar memória virtual o sistema mata qualquer processo aleatóriamente e seu software não toma nem conhecimento disso.
Aliás a classe runtime vai usar o shell do sistema, o que vai deixar seu software lento(se for consultar cada processo que roda no SO).
Por isso eu sou contra lecionar java nas universidades antes de c ou pascal. Só com esse tipo de linguagem se aprende como a máquina funciona.
Será que foi por isso que me ensinaram assembler/assembly na faculdade?
motherfuckers :lol:
Kanin_Dragon
juliocbq:
Kanin Dragon:
emerson_web,
Você pode utilizar a classe Process em conjunto com a classe RunTime, com essas 2 classes você pode consultar os processos inclusive finalizar o processo pelo PID.
Abs,
Mas isso não é uma solução adequada. Por exemplo se faltar memória virtual o sistema mata qualquer processo aleatóriamente e seu software não toma nem conhecimento disso.
Aliás a classe runtime vai usar o shell do sistema, o que vai deixar seu software lento(se for consultar cada processo que roda no SO).
Meu pai é promotor de justiça e sempre menciona uma frase um tanto quanto boba, mas que no fundo faz muito sentido “Cada caso e um caso”.
Alguns anos atrás precisei desenvolver uma ferramenta onde o usuário através de uma aplicação desktop realizava a busca por um determinado processo em seguida o usuário podia decidir entre finalizar o processo ou realizar algumas outras opções que não vem ao caso agora, na época não existia nenhum framework para esse tipo finalidade.
Nunca tivemos problemas com performance lembrando que a ferramenta acessava um servidor remotamente, oque poderia ser mais um empecilho.
Delimitamos quais processos o usuário podia enxergar e quais ações ele podia tomar em cima de cada processo, bem como delimitamos os processos que a ferramenta podia buscar no SO. Utilizando o bom censo e possível criar uma aplicação sem interferencias de performance.
Abs,
J
juliocbq
Kanin Dragon:
juliocbq,
Meu pai é promotor de justiça e sempre menciona uma frase um tanto quanto boba, mas que no fundo faz muito sentido “Cada caso e um caso”.
Alguns anos atrás precisei desenvolver uma ferramenta onde o usuário através de uma aplicação desktop realizava a busca por um determinado processo em seguida o usuário podia decidir entre finalizar o processo ou realizar algumas outras opções que não vem ao caso agora, na época não existia nenhum framework para esse tipo finalidade.
Nunca tivemos problemas com performance lembrando que a ferramenta acessava um servidor remotamente, oque poderia ser mais um empecilho.
Delimitamos quais processos o usuário podia enxergar e quais ações ele podia tomar em cima de cada processo, bem como delimitamos os processos que a ferramenta podia buscar no SO. Utilizando o bom censo e possível criar uma aplicação sem interferencias de performance.
Abs,
Se a sua aplicação abrir e fechar um software(que é o shell, prompt, etc…) para cada processo na ram vai haver um overhead terrível por causa de múltiplos ios e de várias bibliotecas sendo carregadas e descarregadas com jni.
Como você citou cada caso é um caso, mas a diferença de desempenho é nítida. Além de ser muito mais prático escrever uma aplicação que necessita ouvir processos em c++ do que em java.