Qual metodo e de qual api eu utilizo para desligar o PC

7 respostas
C

Caros amigos, estou desenvolvendo uma aplicação em java, na qual é necessário o desligamento do PC em caso de acesso inválido a um determinado local de dados. Por isso, gostaria de saber quais metodos e de quail api são necessários para operações como desligar, reiniciar, dentre outros.

Desde já agradeço a quem puder me ajudar.

7 Respostas

Daniel_Quirino_Olive

Em Java puro não é possível fazer isso. Acredito que a maneira mais fácil seria fazer com que seu sistema em Java executasse algum comando do SO (ver a classe java.lang.Runtime) em questão, mas é preciso:
:arrow: verificar em qual SO seu sistema está sendo executado;
:arrow: verificar se o usuário que está executando o seu sistema tem permissões para executar o comando de desligamento da máquina.

Boa sorte :wink:

(P.S.: tópico movido para o Java Básico, ok?)

C

valeu Daniel pela dica, vou testar !!! :smiley:

C

Caro Daniel, estava procurando na classe especificada por você um metodo que se adequasse ao que eu desejava, mas não consegui encontrar nenhum que desligasse o PC ou que possibilitasse uma chamada do SO (mesmo eu não sabendo qual é esta chamada), por isso gostaria que você me desse uma ajuda se possivel.

Agradeço desde já.

Daniel_Quirino_Olive

Na classe java.lang.Runtime tem um método chamado “exec”, cujo parâmetro é uma String contendo o comando que você pretende que seja executado no seu SO. Se você estiver testando seu programa no Windows XP, tente isso:

Runtime.getRuntime().exec("cmd /c shutdown -r -t 120");

O seu programa Java vai executar o desligamento do Windows (restart, na verdade) dentro de 120 segundos (para abortar o desligamento, abra o terminal do Windows e digite “shutdown -a”).

Agora, como tarefa, procure por aí como resolver este problema para os demais SOs. :wink:

C

cara valew mesmo :D. E eu vou procurar como resolver isso sim…

K

Se não me engano vc pode executar o comando shutdown passando no nome da máquina da rede que deseja desligar.(se estiver em rede é claro)

drix

Bom! o que segue não é nada elegante. Mas aki funcionou certinho.
Espero que lhe ajude:

if (new String("WINDOWS").equals(System.getProperty("os.name").toUpperCase().subSequence(0,7))){
   try {
      Runtime.getRuntime().exec("cmd /c shutdown -s -t 0");
    } catch (IOException e) {e.printStackTrace();}
}
else{
    try {
       Runtime.getRuntime().exec("sudo sbin/shutdown -r now");
    } catch (IOException e) {e.printStackTrace();}
}

No meu caso, uso para desligar máquinas Windows e Linux.

Valeuwww :wink:

Criado 6 de julho de 2006
Ultima resposta 7 de jul. de 2006
Respostas 7
Participantes 4