-javaagent引数とpremainメソッドを使用して、いくつかの Java バイトコード インストルメンテーションを実行しました。しかし、 agentmainメソッドについて聞いたのはこれが初めてです。この方法についていくつか質問があります。こちらが続きます。
premain メソッドと agentmain メソッドの両方の用途は同じですか?
agentmain メソッドが呼び出されたとき
javaインストルメンテーションでのagentmainメソッドの使用は何ですか?
-javaagent引数とpremainメソッドを使用して、いくつかの Java バイトコード インストルメンテーションを実行しました。しかし、 agentmainメソッドについて聞いたのはこれが初めてです。この方法についていくつか質問があります。こちらが続きます。
premain メソッドと agentmain メソッドの両方の用途は同じですか?
agentmain メソッドが呼び出されたとき
javaインストルメンテーションでのagentmainメソッドの使用は何ですか?
premain
アプリケーションの前にエージェントが開始されたときに呼び出されます。を使用して呼び出されるエージェントは、 -javaagentスイッチpremain
で指定されます。
agentmain
アプリケーションが既に実行された後にエージェントが開始されたときに呼び出されます。で開始されたエージェントはagentmain
、Sun ツール API を使用してプログラムで接続できます (Sun/Oracle JVM のみ -- 動的エージェントを導入する方法は実装に依存します)。
エージェントは と の両方を持つことができますがpremain
、agentmain
特定の JVM 呼び出しで呼び出されるのは 2 つのうちの 1 つだけです。premain
つまり、エージェントはまたはのいずれかで始まりますagentmain
が、両方ではありません。
これについての詳細は、プログラムの開始後に Java エージェントを開始するという質問への回答を参照してください。