問題タブ [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.

0 投票する
3 に答える
2507 参照

java - Javaエージェント。何のために?

Javaagent の使用例を探してみると、ほとんどの場合、バイトコードを使用した例です。これらの例では、Javaassist などのサードパーティ ライブラリを使用しています。

私の知る限り、Java にはバイトコードを扱うための標準的な手段はなく、いずれにせよライブラリに頼る必要があります。

そのため、呼び出す前に、これらのライブラリを独自のカスタム クラスローダーで使用しようとしましたdefineClass()。そしてもちろん、それは完璧にうまく機能しました。ClassFileTransformerのメソッドで行う場合と同様に、バイトコードを同じ方法で変更できますtransform()

javaagents には別の便利な機能があり、それが主な機能であることを正しく理解していますか? まず第一に、javaagent はInstrumentationオブジェクトを提供し、Java 仕様では、instrumentパッケージは主にバイトコードを操作するために使用されると述べているためです。instrumentしかし、独自のクラスローダを実装できる (パッケージが導入されるずっと前に実装できた) だけであるのに、なぜそれを行う必要があるのでしょうか?

0 投票する
3 に答える
4816 参照

java - javaagent での再定義と再変換の違い

カスタム Java エージェントで jar ファイルをパックする場合、次のプロパティを追加できます。

  • Can-Redefine-Classes
  • Can-Retransform-Classes

これら2つの違いは何ですか?

クラスがロードされる前に再定義が行われ、その後に再変換が行われる場合、正確に再変換が行われるのはいつですか?

0 投票する
1 に答える
349 参照

lotus-notes - Java エージェントが使用するために、domino データベース内のどこに managed-beans.xml を格納しますか?

Connections サーバーと通信するスタンドアロン Java アプリケーションの作成に成功しました。エンドポイントは src\META-INF\managed-beans.xml で定義され、sbt.properties はプロジェクトのルートに格納されます。

エージェントを Java エージェントとして Notes データベースに移動したいと考えています。Java パースペクティブでは、データベースに WebContent\WEB-INF フォルダーがあることがわかりますが、同様の META-INF フォルダーはありません。そこに managed-beans.xml を配置してもうまくいかないようです。また、WebContent\WEB-INF\faces-config.xml 内でマネージド Bean を定義しようとしましたが、成功しませんでした (これまで読んだ限りでは、WEB-INF は XPages と Web 作業に適しているようですが、 META-INF はスタンドアロン Java エージェント用です。

managed-bean.xml を sbt.user-directory (私のマシンでは C:\Program Files (x86)\IBM\Lotus\Notes\framework) に保存することで、ファイルを読み取ることができましたが、例外がありました。xml ファイルをノーツ データベース内に保存できれば、もっといいのですが。

通常の NotesMain() 内のコード スニペットは次のとおりです。

編集: まだ成功していませんが、SBTPlayground.nsf の META-INF ファイルが Core/Java フォルダーにあることがわかりました (Java パースペクティブから見た場合)。そこに自分の managed-beans.xml も配置しようとしましたが、エージェントはそれを読み取れませんでした (まだ!)。

0 投票する
1 に答える
5523 参照

profiling - Javaインストルメンテーションでのagentmainメソッドの使用は何ですか

-javaagent引数とpremainメソッドを使用して、いくつかの Java バイトコード インストルメンテーションを実行しました。しかし、 agentmainメソッドについて聞いたのはこれが初めてです。この方法についていくつか質問があります。こちらが続きます。

premain メソッドと agentmain メソッドの両方の用途は同じですか?
agentmain メソッドが呼び出されたとき
javaインストルメンテーションでのagentmainメソッドの使用は何ですか?

0 投票する
1 に答える
439 参照

java - バイトコード操作マニフェスト エントリ

Java バイトコード変更のチュートリアルを楽しんでいます。Can-Redefine-Classes: true Can-Retransform-Classes: true Can-Set-Native-Method-Prefix: true それはまったく問題ありませんが、どのチュートリアルも説明していません属性は正確に何をしますか。オラクルのドキュメントはかなり簡潔ですが、Can-Set-Native-Method-Prefix: true を除いて、Java メソッドとして単純に変更することはできないため、ネイティブ メソッドも計測できると思います...

クラスの再定義と再変換の違いは何ですか?

0 投票する
1 に答える
1463 参照

jboss - loadAgent() で読み込んだエージェントをアンロードする方法

jdk1.6を使用しています。実行時にjarを正常にロードしました。コードは次のとおりです。

ここで、実行時にこのエージェントをアンロードしたいと思います。それを行うための API DOC はありません。誰かアドバイスをくれませんか?ありがとう。

編集

その他のコード

その時私は何をしましたか

上記のコードを再度実行して、これら 2 つのエージェントを再度読み込みます。しかし、エラーが発生しました。

エラー

現在の vm のエラー

ターゲット vm のエラー

標的

エラーなしで同じ仕事をすること。毎回仕事が終わったらエージェントをアンロードする必要があると思います。しかし、それらのエージェントをアンロードできませんでした。

GlobleVariables の編集

0 投票する
1 に答える
10627 参照

java - 2 つの jar を使用して JVM 引数 -javaagent を構成する方法

Spring AOP を使用するには、JVM 引数として-javaagent:C:/spring-agent-2.5.6.jarを構成する必要があります。しかし、既に構成されている jar があります。つまり、-javaagent:C:/other.jar です。

両方のjarが正しく動作するように、-javaagentを使用して両方のjarを構成するにはどうすればよいですか?

また、Windows および Linux 環境で -javaagent を使用して複数の jar を構成する方法が異なる場合があります。両方の環境の解決策を提案してください。