web-dev-qa-db-ja.com

Jconsoleを使用してJavaプログラムを監視する方法は?

2つのスレッドを使用して、1から200までの数値を出力するプログラムを作成しました。

次に、JConsoleを使用してこのプログラムを監視します。

基本的に、JConsoleを使用してアプリケーションを監視する方法を学びたいと思います。

私はグーグルを検索しましたが、何か役に立つものを見つけることができませんでした。

どうすればこれを達成できますか?

私が始めたときjconsole.exe binフォルダー内。ホスト名とポート番号を要求します。私の場合、ここには何もありません。誰かがガイドできますか?.

16
Thinker

次のJMX引数を追加して、JVMを有効にする必要があります。

-Dcom.Sun.management.jmxremote
-Dcom.Sun.management.jmxremote.authenticate=false
-Dcom.Sun.management.jmxremote.port=8484
-Dcom.Sun.management.jmxremote.ssl=false

これらのパラメーターを使用すると、JMX監視ツールがアプリケーションにアクセスして監視できるようになります。

また、私は visualVM より強力なツールを使用することをお勧めします。 visualVMのいくつかの機能:

  • CPUプロファイリングを提供します。
  • スレッドに関するすべての情報を提供します。
  • JVMヒープとメモリの状態を提供します。
  • GCアクティビティに関する情報を提供します。
9
Salah

パッケージp1の下にTestというクラスがあり、2つのスレッド(監視対象)を使用して1から200までの数値を出力するコードがあるとします。

したがって、jconsoleを使用してアプリケーションを監視するには、まずコードをコンパイルして実行し、コードの実行中に実行する必要があります...

  • Start-> Run-> jconsole.exeを押してEnterを押します

    enter image description here

  • 監視するアプリケーションを選択し、Connectをクリックします。

    enter image description here

または、この目的でもVisualVMを使用できます。

  • enter image description here
10

JConsoleは、JConsoleの起動時に実行中のすべてのアプリケーションを検出します。次に、現在実行中のアプリケーションポートとホストのみがリストに表示されます。したがって、最初にアプリケーションを起動してから、JConsoleを起動する必要があります。

1
Sonu