2010-06-04 3 views
9

Est-il possible d'arrêter Windows par programmation avec Java?Arrêter Windows avec Java

Salutations

+0

double possible de [Arrêt d'un ordinateur] (http://stackoverflow.com/questions/25637/shutting-down-a-computer) – Adi

Répondre

17
String shutdownCmd = "shutdown -s" 
Process child = Runtime.getRuntime().exec(shutdownCmd); 

Plus d'informations sur le shutdown command pour votre plaisir visuel

D'autres options de ligne de commande qui peuvent intéresser que vous êtes

-i Afficher l'interface graphique, doit être la première option

-l Fermer la session (ne peut pas être utilisé avec l'option -m)

Arrêt -r et redémarrez l'ordinateur

-m \ nom_ordinateur (ordinateur à distance à l'arrêt/redémarrage/abort)

- t xx Définir le délai d'arrêt à xx secondes

-c "commentaire" commentaire d'arrêt (maximum de 127 caractères)


Bien sûr, si vous préférez ne pas utiliser cette méthode, il existe des bibliothèques que vous pouvez télécharger pour y parvenir. Un exemple de ceci serait Java Windows Shutdown Functions.

Selon leur page SourceForge:

JWSF - Java API de Windows arrêt Fonctions permet aux applications Java d'effectuer les sur la plupart des fenêtres du système d'exploitation des opérations suivantes, arrêt, redémarrage, fermeture de session, poste de travail de verrouillage. JWSF effectue des appels natifs en utilisant JNI. JWSF est soumis à la licence LGPL

3

Exécutez la commande "shutdown -s".

Edit: Quelque chose comme ceci:

Process p = Runtime.getRuntime().exec("shutdown -s"); 
3

Cela peut aussi être fait en utilisant WMI, par exemple via JACOB:

import java.util.Enumeration; 

import com.jacob.activeX.ActiveXComponent; 
import com.jacob.com.ComThread; 
import com.jacob.com.EnumVariant; 
import com.jacob.com.Variant; 

public abstract class Shutdown { 

    public static void main(String[] args) { 
     ComThread.InitMTA(); 
     try { 
      ActiveXComponent wmi = new ActiveXComponent("winmgmts:{impersonationLevel=impersonate,(Shutdown)}!\\\\."); 
      Variant instances = wmi.invoke("InstancesOf", "Win32_OperatingSystem"); 
      Enumeration<Variant> en = new EnumVariant(instances.getDispatch()); 
      ActiveXComponent os = 
       new ActiveXComponent(en.nextElement().getDispatch()); 
      os.invoke("Win32Shutdown", 1, 0); 
     } finally { 
      ComThread.Release(); 
     } 
    } 

} 
1

Si vous voulez arrêter dans certain temps ajouter le paramètre -t (en secondes) .

Pendant cinq secondes:

String shutdownCmd = "shutdown -s -t5"; 
Questions connexes