LinuxのようにWindowsで特定のJavaプロセスを強制終了したい(ps -aux
processidを取得kill processid
してからプロセスを強制終了する)。
9 に答える
JDKに含まれてjps
いるユーティリティを使用して、JavaプロセスのプロセスIDを見つけることができます。出力には、実行可能JARファイルの名前またはメインクラスの名前が表示されます。
次に、Windowsタスクマネージャーを使用してプロセスを終了します。コマンドラインで実行する場合は、次を使用します。
TASKKILL /PID %PID%
また、タスクマネージャを使用してJavaプログラムのPIDを見つけることもできます。PID列とコマンドライン列を有効にするView -> Select Columns
と、適切なプロセスを見つけることができます。
結果は次のようになります:
jdkのパスを設定した後、使用します。その後JPS
、タスクマネージャーで簡単に強制終了できJPS
ます。すべてのJavaプロセスが提供されます。
これは、jarの複数のインスタンスが実行されている場合でも機能します
wmic Path win32_process Where "CommandLine Like '%yourname.jar%'" Call Terminate
私が見つけた解決策は非常に簡単です。WindowのWMICとJavaのランタイムを使用して、プロセスを見つけて強制終了します。
パート1:アプリのスタートアップコマンドラインになんらかの識別子を入力する必要があります。例:
String id = "com.domain.app";
パート2:アプリを実行するときは、必ず文字列を含めてください。Java内から開始するとし、次のようにします。
Runtime.getRuntime().exec(
"C:\...\javaw.exe -cp ... -Dwhatever=" + id + " com.domain.app.Main"
);
パート3:プロセスを強制終了するには、WindowのWMICを使用します。アプリが上記のIDを含むように開始されたことを確認してください。
Runtime.getRuntime().exec(
"wmic process Where \"CommandLine Like '%" + id + "%'\" Call Terminate"
);
Windows XP以降には、すべてのプロセスIDを一覧表示するtasklistというコマンドがあります。
Windowsでプロセスを強制終了する方法については、以下を参照してください。
本当にWindowsのプロセスを殺す| スタックオーバーフロー
次の方法で、JavaでOSコマンドを実行できます。
Runtime.getRuntime().exec("your command here");
コマンドの出力を処理する必要がある場合は、例を参照してください:JavaでRuntime.exec()を使用する
これはWindowsに固有です。taskkillを使用して特定のJavaプログラムを1つ強制終了する必要があるという同じ問題に直面していました。Javaプログラムを実行すると、タスクリストに、イメージ名がjava.exeとして設定された同じプログラムが表示されていました。ただし、を使用してそれをtaskkill /F java.exe
強制終了すると、必要のない意図されたもの以外の他のすべてのJavaアプリケーションが停止します。
だから私は同じJavaプログラムを使用して実行します:
start "MyProgramName" java java-program..
ここで、startコマンドは新しいウィンドウを開き、ウィンドウのタイトルをMyProgramNameに設定してJavaプログラムを実行します。
このjavaプログラムを強制終了するには、次のtaskkillコマンドを使用します。
taskkill /fi "MyProgramName"
Javaプログラムのみが強制終了されます。残りは影響を受けません。
- GitBashを開く
- タイプ
ps -ef | grep java
pid
実行中のjdkのを見つけるkill -9 [pid]
Windowsでは、PowerShellを使用して実行中のJavaプロセスを一覧表示できます。次に、プロセスIDを使用して、プロセスを強制終了できます。PowerShellで実行する必要がある以下のコマンドを見つけてください。
Javaプロセスを一覧表示します。
ps | Where-Object -Property ProcessName -EQ -Value 'Java'
特定のIDを持つJavaプロセスを強制終了します。
Stop-Process <PID>
上記のアプローチは私のために働いた。