既存のJVMプロセスで新しいJavaコードを実行する

スタントン:

現在、Windowsシェルで実行されているJavaプロセスがあります。

シリアル化を担当するスレッドの1つが無期限にブロックされるため、メモリに格納されている重要な情報がディスクに書き込まれなくなります。

プロセスをシャットダウンすると、情報が失われます。

プロセスをシャットダウンする前に、前述の情報をもう一度シリアル化できるように、新しいコードを記述してコンパイルし、同じメモリ空間で実行できると便利です。

プロセスはjava -jarコマンドを使用して開始されました

ホットスポットVM機能で、これを実現する方法はありますか?

チャドオケレ:

Attach API使用して、仮想マシンに接続できます使い方はこちら

次にコード例を示します。

String agentJAR = "myAgent.jar";
VirtualMachine vm = VirtualMachine.attach (processid);
vm.loadAgent(agentJAR);

ここで、agentはjarの名前です。

エージェントjarには、インストルメンテーションAPIを使用してJVMとやり取りできるエージェントが含まれています。

実行時にロードされるエージェントを作成するには、次のagentmainような関数を実装します。

public static void agentmain(String agentArgs, Instrumentation inst); 

または

public static void agentmain(String agentArgs); 

計装オブジェクトは、あなたはおそらく必要はありません、実行時にクラスを変更するために使用されます。ただし、うまくいけば、agentmainで実行する必要のあるコードを配置し、アタッチAPIを使用してターゲットJVMでそれを実行できます。

幸運を!!

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

execを使用して新しいプロセスでシステムコマンドを実行する

分類Dev

新しいプロセスノードで関数を実行します

分類Dev

新しいプロセスでスリープしてからコマンドを実行する方法をBashスクリプト

分類Dev

新しいプロセスでメソッドを実行する方法

分類Dev

新しいバックグラウンドtmuxウィンドウでコマンドを実行し、プロセスが終了するのを待ちます

分類Dev

新しいbashシェルプロセスでコマンドを実行する

分類Dev

bashでバックグラウンドで実行すると、内側のforループが新しいbashプロセスを生成します

分類Dev

Nodejsで実行中の既存のプロセスのノードレポートを取得するにはどうすればよいですか?

分類Dev

このコードがこの順序で実行されるのはなぜですか?プロセスフローの説明を探しています

分類Dev

IntelliJでAndroidプロジェクトを実行しようとしています:エラー:ビルドプロセスの異常終了:エラー:このJavaインスタンスは32ビットJVMをサポートしていません。

分類Dev

mongoDBアトラスの既存のレコードに新しいプロパティを設定する方法

分類Dev

複数のレコードでプロセスを実行する方法は?

分類Dev

元のウィンドウと同じプロセスで、新しいターミナルウィンドウでコマンドを実行するにはどうすればよいですか?

分類Dev

Rails:Stripe:既存のサブスクリプションを新しいクーポンコードで更新する

分類Dev

GcmListenerServiceの新しいプロセスを実行します

分類Dev

Scalaで外部プロセスを実行し、終了コードと出力の両方を取得するにはどうすればよいですか?

分類Dev

新しいプロセスツリーでBashスクリプトを実行する

分類Dev

新しいラップトップで既存のUbuntuを実行する

分類Dev

新しいプロセスでメソッドを実行し、メソッドが終了するのを待ちます

分類Dev

C#プロセスを使用して新しいコマンドラインウィンドウを開かずに、「schtasks」でスケジュールされたタスクを実行するにはどうすればよいですか?

分類Dev

既存のコマンドの実行中に新しいコマンドを実行するにはどうすればよいですか?

分類Dev

Pythonで特定のコマンドを実行しているプロセスの数を見つける方法

分類Dev

Powershellスクリプトstart-processを使用して新しいPowerShellウィンドウで複数行のコードを実行する方法

分類Dev

セマフォは、独自のスレッドで実行されているコードを停止することでデッドロックしています

分類Dev

コマンドを再起動せずに、実行中のプロセス出力がリダイレクトされている新しいファイルにスワップアウトするにはどうすればよいですか?

分類Dev

スナップショットのプロセスウォークを実行した後、すべてのプロセスの完全なコマンドラインを取得するにはどうすればよいですか?

分類Dev

Pythonコードが実行されているプロセッサコアの数を確認しますか?

分類Dev

新しいコマンドプロンプトでコマンドを実行する

分類Dev

JVMの終了後もプロセスを実行し続ける

Related 関連記事

  1. 1

    execを使用して新しいプロセスでシステムコマンドを実行する

  2. 2

    新しいプロセスノードで関数を実行します

  3. 3

    新しいプロセスでスリープしてからコマンドを実行する方法をBashスクリプト

  4. 4

    新しいプロセスでメソッドを実行する方法

  5. 5

    新しいバックグラウンドtmuxウィンドウでコマンドを実行し、プロセスが終了するのを待ちます

  6. 6

    新しいbashシェルプロセスでコマンドを実行する

  7. 7

    bashでバックグラウンドで実行すると、内側のforループが新しいbashプロセスを生成します

  8. 8

    Nodejsで実行中の既存のプロセスのノードレポートを取得するにはどうすればよいですか?

  9. 9

    このコードがこの順序で実行されるのはなぜですか?プロセスフローの説明を探しています

  10. 10

    IntelliJでAndroidプロジェクトを実行しようとしています:エラー:ビルドプロセスの異常終了:エラー:このJavaインスタンスは32ビットJVMをサポートしていません。

  11. 11

    mongoDBアトラスの既存のレコードに新しいプロパティを設定する方法

  12. 12

    複数のレコードでプロセスを実行する方法は?

  13. 13

    元のウィンドウと同じプロセスで、新しいターミナルウィンドウでコマンドを実行するにはどうすればよいですか?

  14. 14

    Rails:Stripe:既存のサブスクリプションを新しいクーポンコードで更新する

  15. 15

    GcmListenerServiceの新しいプロセスを実行します

  16. 16

    Scalaで外部プロセスを実行し、終了コードと出力の両方を取得するにはどうすればよいですか?

  17. 17

    新しいプロセスツリーでBashスクリプトを実行する

  18. 18

    新しいラップトップで既存のUbuntuを実行する

  19. 19

    新しいプロセスでメソッドを実行し、メソッドが終了するのを待ちます

  20. 20

    C#プロセスを使用して新しいコマンドラインウィンドウを開かずに、「schtasks」でスケジュールされたタスクを実行するにはどうすればよいですか?

  21. 21

    既存のコマンドの実行中に新しいコマンドを実行するにはどうすればよいですか?

  22. 22

    Pythonで特定のコマンドを実行しているプロセスの数を見つける方法

  23. 23

    Powershellスクリプトstart-processを使用して新しいPowerShellウィンドウで複数行のコードを実行する方法

  24. 24

    セマフォは、独自のスレッドで実行されているコードを停止することでデッドロックしています

  25. 25

    コマンドを再起動せずに、実行中のプロセス出力がリダイレクトされている新しいファイルにスワップアウトするにはどうすればよいですか?

  26. 26

    スナップショットのプロセスウォークを実行した後、すべてのプロセスの完全なコマンドラインを取得するにはどうすればよいですか?

  27. 27

    Pythonコードが実行されているプロセッサコアの数を確認しますか?

  28. 28

    新しいコマンドプロンプトでコマンドを実行する

  29. 29

    JVMの終了後もプロセスを実行し続ける

ホットタグ

アーカイブ