2010-06-04 27 views
9

Windows programlı olarak Java ile kapatılabilir mi?Java ile Windows Kapatma

Şakalar

+0

mümkün kopya (http://stackoverflow.com/questions/25637/shutting-down-a-computer) – Adi

cevap

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

fazla bilgi

-i GUI arabirimini görüntüle, ilk seçenek

olmalıdır

(-m seçeneği ile kullanılamaz)

-r Kapatma Oturumu kapatın ve bilgisayarı yeniden başlatın -l

-m \ bilgisayaradi (Uzak bilgisayar kapatma/yeniden başlatma için/iptal)

- t xx xx saniyeye kapatma için ayarlayın zaman aşımı

-c "yorum" Kapatma comment

(127 maksimum karakter)


Tabii ki, bu yöntemi kullanmamayı tercih ederseniz, bunu elde etmek için indirebileceğiniz kütüphaneler vardır. Bunun bir örneği Java Windows Shutdown Functions olacaktır. Onların SourceForge sayfasına göre

:

JWSF - Java, Windows Kapatma Fonksiyonlar API java uygulamaları sistem, kapatma, yeniden başlatma, oturum kapatma, kilit iş istasyonu işletim çoğu pencerelerde aşağıdaki işlemleri gerçekleştirmek için izin verir. JWSF, JNI kullanarak yerel aramalar yapar. JWSF JACOB aracılığıyla örneğin Bu aynı zamanda WMI kullanarak yapılabilir LGPL lisansı

3

"shutdown -s" komutunu çalıştırın.

Düzenleme: Böyle bir şey: izleme keyfi

sen ilgi çekebilecek diğer bazı komut satırı seçenekleri için shutdown command üzerinde

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

tabidir:

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

Eğer belirli bir süre içinde kapatma onu (saniye) -t parametresini eklemesi istiyorsanız . Beş saniye için

: [a Bilgisayarı kapatma] arasında

String shutdownCmd = "shutdown -s -t5"; 
İlgili konular