2017-03-10 21 views
1

したがって、Runtimeクラスのexecメソッドを使用してjavaでプロセスを開始しました。さて、私がこれをどのように呼び出すのかは以下の通りです。java {.exec( "cmd/c" + command)}でexecを使用して起動したプロセスを強制終了する方法

Runtime r=Runtime.getRuntime(); 
Process p=null; 
String s="E:\\Softwares\\fiddler4setup.exe"; 
p=r.exec("cmd /c"+s); 

ここで、p.destroy()メソッドを使用してプロセスを破棄しようとしています。 Fiddler4setup.exeはまだ実行中です。私は1週間のようにこれを閉じる方法を模索してきました。ここでも、この種の問題に対して特別な正解はありません。親切に私にこれを手伝ってください。

また、ファイルを直接実行しても、704エラーが表示されているため動作しません。次に、 "cmd/c"を使ってこの解決策を見ました。

ありがとうございます。あなたが使用する必要があり、あなたのプロセスを殺すために

+1

バイナリを実行することが可能です。Exe di直ちにcmd.exeを使わずに...だから私は最初にその呼び出しがうまくいかなかった理由をデバッグします。 – GhostCat

+0

私はそれをデバッグしました。私が知る限り、このプロセスを終了することはできませんし、メッセージで説明されたメッセージが「アクセスが拒否されました」と表示されました。@ GhostCat –

+0

@GhostCat、CreateProcess error = 740、要求された操作に仰角が必要です。 –

答えて

1

Taskkill /IM YourProcess.exe /F 

またはPID

Taskkill /PID 26356 /F 

とだからあなたのプログラムは次のようになります。あなたが得ることができる

Runtime r = Runtime.getRuntime(); 
Process p = r.exec("Taskkill /IM fiddler4setup.exe /F"); 

注意をこのコマンドを使用してあなたのプロセスのPID tasklistあなたのcmdで、これはPIDを回避するために使用する方が良いでしょうパスの問題。


EDITあり

管理者モードとしてスクリプトを実行するための明確な方法は、いくつかの質問がここにあります缶は、あなたとアイデアを提供願っています:

Run command prompt as Administrator
Java: run as administrator
Run Java file as Administrator with full privileges

+0

これは機能しません。私はすでにこれを試しました。 –

+0

私のように、パスを使わずに試してみるか、タスクのPIDを検索して@SunilSonuのようにkillしてください。 –

+0

タスクリストを使用してfiddler4setupのPIDを取得していますが、上記のコードを使用しています。 @YCF_L –

関連する問題