用Java关闭Windows

用Java关闭Windows,java,windows,shutdown,Java,Windows,Shutdown,是否可以使用Java以编程方式关闭Windows 干杯运行命令“shutdown-s” 编辑:类似这样的内容: Process p = Runtime.getRuntime().exec("shutdown -s"); 有关的更多信息,请查看 您可能感兴趣的其他一些命令行选项包括 -我显示GUI界面,必须是第一个选项 -l注销(不能与-m选项一起使用) -r关闭并重新启动计算机 -m\computername(要关闭/重新启动/中止的远程计算机) -t xx将停机超时设置为xx秒 -c“注释”

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

干杯

运行命令“shutdown-s”

编辑:类似这样的内容:

Process p = Runtime.getRuntime().exec("shutdown -s");
有关的更多信息,请查看

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

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

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

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

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

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

-c“注释”关闭注释(最多127个字符)


当然,如果您不想使用这种方法,可以下载一些库来实现这一点。这方面的一个例子是

根据他们的SourceForge页面:

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


这也可以使用WMI完成,例如通过以下方式:

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();
        }
    }

}
import java.util.Enumeration;
导入com.jacob.activeX.ActiveXComponent;
导入com.jacob.com.ComThread;
导入com.jacob.com.EnumVariant;
导入com.jacob.com.Variant;
公共抽象类关闭{
公共静态void main(字符串[]args){
ComThread.InitMTA();
试一试{
ActiveXComponent wmi=新的ActiveXComponent(“winmgmts:{impersonationLevel=impersonate,(关机)}!\\\”;
Variant instances=wmi.invoke(“InstancesOf”、“Win32_OperatingSystem”);
Enumeration en=新的EnumVariant(instances.getDispatch());
ActiveXComponent操作系统=
新的ActiveXComponent(en.nextElement().getDispatch());
调用(“Win32Shutdown”,1,0);
}最后{
ComThread.Release();
}
}
}

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

五秒钟:

String shutdownCmd = "shutdown -s -t5";

你为什么要这样做的可能重复?是否有一个特殊的情况,这会更好?它看起来比使用shutdown命令复杂得多!
String shutdownCmd = "shutdown -s -t5";