(間違っていたら訂正してください)
java コマンドを発行して Java プログラムを実行すると、
java MyProg
プログラムは新しい JVM で実行されます。
プログラムを新しい JVM にロードするのは何ですか? 新しいスレッドを生成するのは JRE ですか?
各プログラムが独自の JVM で実行される場合、相互に通信することは可能ですか?
以前、JMX を使用してローカルで実行されている Java プログラムにリクエストを送信する方法について質問しました。JMX コマンドがローカルで発行されている場合、ポート番号は必要ないことがわかりました。その答えは、クライアント アプリケーション (jconsole、jvisualvm、jprobe など) がマシン上で実行されている Java アプリケーションを検索することでした。これは問題ありませんが、クライアント アプリケーションが監視または通信するアプリケーションとは別の JVM で実行されることを考えると、ポート番号なしで (同じ JVM で実行されていないため) どのように正確に相互にやり取りするのでしょうか?
2 つのプログラムが実行されている場合、通常は 2 つの JVM があります。JVM は同じ JRE プロセス内で実行されますか? また、これは 2 つの JVM が通信できる必要があることを意味するのではないでしょうか?
ありがとう