LAN経由で接続された別のコンピューターでプロセスを強制終了して開始するプログラムを作成しています。プロセスを正常に強制終了できます。tasklist を使用してプロセスをリストし、それを強制終了するには taskkill を使用しました。強制終了されたプログラムを再び開始するには、プロセスのパスを取得する必要があります。
Javaでそれを行う方法はありますか?
パスでプロセスを強制終了することはできないと思いますが、プロセス名または ID でいつでも強制終了できます。
プロセスを強制終了するために使用するものは次のとおりです。たとえば、firefox.exe です。
次のように VB スクリプトを作成します。
sub killProcess(strProcessName)
set colProcesses = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("Select * from Win32_Process Where Name='" & strProcessName & "'")
if colProcesses.count <> 0 then
for each objProcess in colProcesses
objProcess.Terminate()
next
end if
end sub
killProcess "firefox.exe"
上記のスクリプトを Java 経由で実行するには、Process API を次のように使用します。
Process pr = Runtime.getRuntime().exec(path_to_vbscript_file, null, null);
pr.waitFor();