問題タブ [java-attach-api]
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 - JVMTI は接続している vm と通信します
Java Attach API を使用して接続するネイティブ JVMTI エージェントがあります。エージェントは基本的に実行するだけAgent_OnAttach
で存在します。エージェントから、エージェントを接続した VM に情報を渡したいと考えています。エージェントをアタッチした VM の stdout に書き込むだけでも問題ありません。ソケットや名前付きパイプなどの帯域外手段を使用できることは承知していますが、組み込みのものを探しています。
java - Java Attach API で使用されるプロセス間通信メカニズムは何ですか?
メインのオペレーティング システムで Java アタッチ API によって使用されるプロセス間通信メカニズムを見つけようとしていますが、基礎となるメカニズムへの参照があまり見つからないようです。
私が見つけた唯一の言及は、ここで、Sun によって少し前に開発された DOORS プロセス間通信メカニズムに言及しているところです。しかし、これがWindowsまたはMacで使用されているとは思えません。ほとんどの記事では、Java Attach API と共有ライブラリ/DLL のロード方法について説明していますが、たとえば jvisualvm とローカル JVM プロセスとの間の通信が実際にどのように機能するかについては説明していません。
heretools.jar
には、 and libattach.so
(Unix システムの場合) or (Windows の場合) が Attach API をサポートする責任があるという言及がありattach.dll
ますが、それらが内部でどのように機能するかについての詳細を見つけることができませんでした。
では、Java Attach API のプロセス間通信は、主流の各オペレーティング システムでどのように機能するのでしょうか? つまり、Windows、Mac OSX、および Linux です。
java - アタッチ ライブラリ DLL をアプリケーションでロードできません
私はJavaでバイトコード操作を行っていますが、外部の実行中のJARファイルで行われています。このため、アタッチ API を使用しています。
私の現在の問題は、別のフォルダーにある DLL をアタッチ API が読み込めないことです。以前にファイルの場所に問題がありましたが、それらを修正したので、ファイルを表示できることはわかっていますが、ロードできないだけです。
私のスタックトレースは次のとおりです。
そして、ここに私のソースコードがあります: