2017-04-26 14 views
1

私は、別のjavaプロセスから実行されているjavaプロセスからメソッドを呼び出して変数を編集しようとしています。実行中のJavaプロセスにアタッチしますか?

例: プロセス1には、プライベートであり、クラスで定義されているString変数を出力するループがあります。 プロセス2(開始時)は、文字列メッセージを変更し、プロセス1は変更された変数を出力し続けます。

これは私が試しているもののシンプルなものですが、それを理解できれば、残りの部分を簡単に見つけることができます。

ありがとうございます! Erouax

+0

多分これを見てください:http://stackoverflow.com/questions/10942427/how-to-have-2-jvms-talk-to-one-another – mdewit

+0

@mdewit残念ながら私は何をしていません:/ – Erouax

+0

これを見てください:http://stackoverflow.com/questions/22441878/attach-to-already-running-jvm – raven1981

答えて

0

答えを見つけたときに私の質問を完全に忘れてしまったので、これを追加するだけです。

Javaエージェントを使用して、ホットスポットアタッチAPIなどを使用して注入することは可能です(非常に簡単です)。これは非常に「検出可能な」方法ですが、依然として機能します。何らかの理由で注入をもっと低めにしたい場合は、DLL注入を使用してクラスをチャックし、JNIを使​​用してDLLから入力メソッドを呼び出すことをお勧めします。これらのDLLとインジェクタは、まともなネイティブ知識を持っていれば、かなり簡単に手に入ります。

関連する問題