(如果我错了请纠正我)
我了解当您通过发出 java 命令运行 java 程序时,
java MyProg
该程序将在新的 JVM 上运行。
什么将程序加载到新的 JVM 中?是产生新线程的JRE吗?
如果每个程序都运行在自己的 JVM 中,它们是否可以相互通信?
我之前问过一个关于如何使用 JMX 向本地运行的 java 程序发送请求的问题。我发现如果 JMX 命令是在本地发出的,我不需要端口号。答案是客户端应用程序(例如 jconsole、jvisualvm、jprobe 等)搜索机器上运行的 java 应用程序。这很好,但考虑到客户端应用程序将在与其想要监视或与之通信的应用程序不同的 JVM 中运行,它们如何在没有端口号的情况下相互连接(因为它们没有在同一个 JVM 上运行)?
如果两个程序正在运行,通常会有 2 个 JVM。JVM 是否在同一个 JRE 进程中运行?而且这是否意味着两个 JVM 应该能够通信?
谢谢