使用Java关闭Windows

时间:2010-06-04 11:28:10

标签: java windows shutdown

是否可以使用Java以编程方式关闭Windows?

干杯

4 个答案:

答案 0 :(得分:18)

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

有关shutdown command的更多信息,以便您获得观看次数

您可能感兴趣的其他一些命令行选项

  

-i显示GUI界面,必须是第一个选项

     

-l注销(不能与-m选项一起使用)

     

-r关闭并重新启动计算机

     

-m \ computername(远程计算机关闭/重启/中止)

     

-t xx将关机超时设置为xx秒

     

-c“comment”关机评论(最多127个字符)


当然,如果您不想这样做,可以下载库来实现这一目标。其中一个例子是Java Windows Shutdown Functions

根据他们的SourceForge页面:

  

JWSF - Java Windows Shutdown Functions API允许Java应用程序在大多数Windows操作系统,关机,重启,注销,锁定工作站上执行以下操作。 JWSF使用JNI进行本机调用。 JWSF受LGPL许可证的约束

答案 1 :(得分:3)

运行命令“shutdown -s”。

编辑:这样的事情:

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

答案 2 :(得分:3)

这也可以使用WMI完成,例如通过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();
        }
    }

}

答案 3 :(得分:1)

如果要在特定时间内关闭它,请附加-t参数(以秒为单位)。

五秒钟:

String shutdownCmd = "shutdown -s -t5";