問題タブ [javaagents]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Junit で javaagent を使用すると Class.forName で ClassNotFoundException が発生する
結果:
しかし:
結果:
中心的な問題は次のようです。
次のように ClassNotFoundException をスローします。
クラスが見つからない理由がわかりません。インストルメンテーション エージェントが正常に読み込まれ、例外がスローされないことに注意してください。
java - JVM を停止せずに Javaagent を JVM に追加するにはどうすればよいですか?
アプリケーションを停止せずに Java アプリケーションをプロファイリングしたいと考えています。アプリケーションの実行中に何らかの形で Javaagent を追加できますか?
java - jettyにvmオプションを追加するにはどうすればよいですか?
-javaagentのようなvmオプションを指定してjettyを開始する方法、またはMAVEN_OPTS変数を介してのみ使用できる方法を教えてください。アスペクトのロード時ウィービングを可能にするために必要です。このプラグインは機能しないようです。
jetty-pluginで実行できるかもしれませんが、そのタグsystemPropertiesによると
コマンドラインまたはJVMによって設定されたシステムプロパティを上書きしません
どういう意味ですか?
java - bootclasspath内のjavaagentjarの場所
を使用してbootclasspathに配置したjavaagentjarがあります
MANIFEST.MFファイル内。
jarが配置されているファイルシステム上のディレクトリを見つける必要があります。
ただし、ここで説明する方法は、私にはうまくいかないようです。
この場合、ProtectionDomain.getCodeSource()はnullを返します。jarがブートクラスパスに配置されているため、これが発生していると思います。このため、リソースの場所を取得するためにMyClass.getClassLoader()を実行することもできません。
私はJava6を使用しています。
誰かが瓶の場所を取得する方法を教えてもらえますか?
java - ClassFileTransformer / javaagent をテストするには?
ClassFileTransformer
ASM を使用して javaagent を実装しました。いくつかのバグがあるため、JUnit テスト ケースを作成したいと考えています。どうすればいいですか?
疑似コードを使用して、次のように考えました。
問題は、どうすればサブジェクトを手動でロードして変換し、JVM/Classloader に自分の操作したバージョンを使用させることができるかということです。それとも、何かを完全に見逃していますか?
java - -javaagent を Tomcat 6 サーバーに追加します。どこに、どのような形式で配置すればよいですか?
J2EE Web トランザクションを監視できるアプリケーション ヘルス モニタリング アプリケーションをインストールしようとしています。どうにかして Tomcat に javaagent を配置する必要がありますが、これを行う正確な方法が明確ではありません。Linux を使用しており、ソフトウェアから指示を受けています。以下のようなことを行うためにこの製品を製造している会社:
私は彼らからさらにサポートを受け、基本的にこれを適切な .sh ファイルに入れるように言いました (しかし、Tomcat 用のファイルを教えてくれませんでした)。
これを catalina.sh ファイルに入れてみましたが、機能していないようです:
どんなアドバイスでも大歓迎です
java - NullPointerException の原因となったフィールド/メソッドをどのように診断しますか?
次のような Java コードがあるとします。
そして、その行で NullPointerException が発生します。どちらが null であるかをどのように判断しますか? デバッグしてすべての呼び出しを確認するか、チェーンを一時的に複数の行に分割することができます。
ただし、少し前に実行されるオープンソース プロジェクトを見たのを覚えています。これは、null の結果を返すメソッド呼び出しを行った NullPointerException のスタック トレースを向上させる javaagent だと思います。残念ながら、私はそれを見つけることができないようです。それがどのように行われるか、またはそれがどのツールであったかを誰かが知っていますか?
java - ロードされたすべてのクラス、オブジェクト、およびそれらのフィールドの詳細を表示する jvmti エージェントを作成する方法
一部のアプリケーションを計測するための Java エージェントを作成したいと考えています。アプリケーションによってインスタンス化されたオブジェクト (つまり、フィールド) の詳細を取得することに関心があります。また、実行中にこれらのオブジェクト/フィールドへの読み取りおよび書き込みアクセスをキャッチしたいと思います。
エージェントの書き方を教えてください。どのクラスとメソッドを調べる必要があるか教えてください。java.lang.instrument クラスについて知っているだけです。しかし、これらのイベントをキャッチできるものは見つかりませんでした。
また、あなたが私に役立つと思われる他の Java 計測技術も受け入れます。
java - Java プログラムで読み取りと書き込みをキャッチするにはどうすればよいですか?
Java プログラムによるすべての読み取りと書き込みをキャプチャできるツールを作成しようとしています。また、どのオブジェクトのどのフィールドがアクセス/変更されているかを知りたいです。
私は現在見ました: -
1) java.lang.instrument 私はそれで多くを行うことができませんでした. 実行中のプログラムにアクセスし、さまざまなオブジェクト/フィールドおよび関連するものに監視を作成できるエージェントを作成する方法を理解できませんでした。そのあたりの意見や情報があればよろしくお願いします。
2) jvmti jvmti を見て、jvmti ツールを作成しようとしましたが、オブジェクトを取得するには、JVMTI_EVENT_OBJECT_ALLOC が潜在的な機能である必要があることがわかりました。しかし、私はそうではないと考えました。さらに、このイベントは新しいコマンドに対して呼び出されないことを読みました。したがって、現時点では、これも当てはまらないようです。
それで、上記の方法またはあなたが知っているかもしれない他のテクニック/ツールを使用して、私がやりたいことを行う方法を知っているかどうか知りたいですか?
注: アプリケーションのソース コードにアクセスできません。私が持っているのはクラスファイルだけです。
java - JVM は、アタッチ API を介してロードされたエージェントのリストを取得できますか?
Java 1.6 attach API によって現在の JVM にロードされているエージェントのリストを取得することはできますか? もしそうなら、どのように?
起動時にロードされたエージェントは RuntimeMXBean を介して決定できますが、起動後に追加されたエージェントのハンドルを取得する方法がわかりません。