10

Java を使用してプログラムで Windows をシャットダウンすることは可能ですか?

乾杯

4

4 に答える 4

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

表示を楽しむためのシャットダウン コマンドの詳細情報

興味のあるその他のコマンド ライン オプションを次に示します。

-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 ライセンスの対象です

于 2010-06-04T11:31:04.197 に答える
3

This can also be done using WMI, for example 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();
        }
    }

}
于 2010-08-09T13:48:01.000 に答える
3

コマンド「shutdown -s」を実行します。

編集:このようなもの:

Process p = Runtime.getRuntime().exec("shutdown -s");
于 2010-06-04T11:29:06.263 に答える