JavaベースのアプリケーションがWindowsマシン上で誤動作を開始する場合、アプリケーションを正常に終了できない場合は、タスクマネージャーでプロセスを強制終了できます。ほとんどの場合、複数のJavaベースのアプリケーションが私のマシンで実行されています。最終的に正しいアプリケーションにヒットすることを期待して、Java.exeプロセスをランダムに強制終了するよりも良い方法はありますか?
編集: SysinternalのProcess Explorerを教えてくれたすべての人に感謝します-まさに私が探しているものです!
ダウンロード SysinternalのProcess Explorer 。 Windows独自のマネージャーよりもはるかに強力なタスクマネージャーです。
その機能の1つは、各プロセスが使用しているすべてのリソース(レジストリキー、ハードディスクディレクトリ、名前付きパイプなど)を表示できることです。そのため、各Java.exeプロセスが保持するリソースを参照すると、どれを削除するかを判断するのに役立つ場合があります。私は通常、特定のログファイルディレクトリを使用しているものを探して見つけます。
実行jps -lv
実行中のすべてのJavaプロセスのPIDとコマンドラインを表示します。
強制終了するタスクのPIDを決定します。次に、コマンドを使用します:
taskkill /PID <pid>
不正なプロセスを殺すために。
ProcessExplorerのようなGUIアプリケーションを実行できず、プロセスの「コマンドライン」引数を探している場合は、コマンドラインから「wmic」を使用できます。例えば:
wmic PROCESS get Processid,Caption,Commandline
特定のプロセスを探したい場合、これを行うことができます:
wmic PROCESS where "name like '%Java%'" get Processid,Caption,Commandline
これからの出力には、「Java」などのプロセスのコマンドライン引数がすべて表示されます。
JDKでjpsを使用すると、より多くの情報が得られます。 -m、-l、および-vオプションを使用すると、詳細情報が表示されます。
Java 6)を使用している場合、JDK binディレクトリからjvisualvm
を試してください。
SysInternalsのProcess Explorerを使用してみましたか?プロセス内で何が実行されているかについて、より良いアイデアを提供します。ここから無料でオンラインで入手できます: http://technet.Microsoft.com/en-us/sysinternals/bb896653.aspx
Windowsタスクマネージャーを開いて、[アプリケーション]タブに移動し、アプリケーションを右クリックして、[プロセスに移動]を選択してみてください。これにより、[プロセス]タブで適切なプロセスが自動的に強調表示されます。
ソフトウェアを開発している場合:Javaランチャーを使用します。いくつかのアプリケーション[Exe4j] [ http://www.ej-technologies.com/products/exe4j/overview.html] で使用しましたが、非常にうまく機能しました。アプリケーションが開始されると、Windowsタスクマネージャーに「myserverapp.exe」または「myapp」などとしてリストされます。他にもラウチャーがあります(それらを暗記しないでください)。そのうちのいくつかは無料です。
システム上のさまざまなJavaプロセスが何であるかをおおまかに知っている場合は、サードパーティのツールを使用するのではなく、タスクマネージャーのすべての列を見てかなり推測することもできます。 [プロセス]タブで、[表示]-> [列の選択]を使用し、PID、CPU時間、VMサイズ、およびスレッド数を追加します。
たとえば、クライアント/サーバーアプリでは、サーバーの実行時間が長くなるため、サーバーはより多くのメモリを使用し、スレッドを増やし、CPU時間をより多く使用する可能性があります。プロセスがスタックしているためにプロセスを強制終了している場合、mightは、現在、より多くのCPUを使用しているだけです。
MAX Javaヒープメモリは通常、直接VMサイズに反映されます。-Xmxフラグを使用している場合、より大きな設定のプロセスはより大きくなります。 VMサイズ。
アプリケーションがまったく応答しない場合は、Process Explorerが適切なオプションです。
応答しているが、死んでいない場合、タスクマネージャを起動し、別のダイアログをJavaプロセスに移動すると、手がかりが得られます。Java =再描画にCPUサイクルを使用しているプロセスが探しています。
SysinternalsからProcess Explorerをダウンロードして、さまざまなJava.exeプロセスをより詳細に確認することをお勧めします。これにより、どのプロセスを終了するかをよりよく把握できます。
http://technet.Microsoft.com/en-us/sysinternals/bb896653.aspx
非常に直感的で、Java.exeプロセスを見つけて右クリックしてそのプロパティに移動できます。そこから、コマンドライン、作成時間などを確認できます。これにより、終了するプロセスを見つけることができます。
それが役に立てば幸い。
ProcessExplorer を使用してJavaプロセスにカーソルを合わせると、コマンドラインが表示されます。