【问题标题】:Shutdown Windows with Java使用 Java 关闭 Windows
【发布时间】:2010-06-04 11:28:09
【问题描述】:

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

干杯

【问题讨论】:

标签: java windows shutdown


【解决方案1】:
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 许可的约束

【讨论】:

    【解决方案2】:

    运行命令“shutdown -s”。

    编辑:像这样:

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

    【讨论】:

      【解决方案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();
              }
          }
      
      }
      

      【讨论】:

      • 你为什么要这样做?有没有特别的情况这样会更好?看起来比使用shutdown命令复杂多了!
      【解决方案4】:

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

      五秒钟:

      String shutdownCmd = "shutdown -s -t5";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-10
        • 1970-01-01
        • 2016-08-08
        • 1970-01-01
        相关资源
        最近更新 更多