JVM实例何时创建?如果2个JVM在同一个系统中并行运行,那么在一个Jvm中运行的程序是否可以访问另一个Jvm中运行的程序?我听说这是真的。是这样吗?
答案 0 :(得分:2)
两个JVM只能使用进程间通信方法相互通信,就像两个非JVM进程一样。
即。他们需要使用共享数据库,消息队列,套接字 - 甚至普通文件来共享数据。
答案 1 :(得分:1)
不,这不是真的。您将拥有两个严格分离的虚拟机,生活在一个虚拟机中的对象无法向另一个虚拟机中的对象发送消息或共享数据。
当您致电java
时,虚拟机已启动/创建/ ....
答案 2 :(得分:0)
每个进程创建一个JVM实例。也就是说,每次运行java.exe
时都会创建一个独立的实例。这些JVM彼此完全分离,因此您甚至可以在同一台机器上运行不同版本的JVM。
JVM没有透明的方式来相互通信。但是,java捆绑了RMI,这是一个进程间通信工具,它允许几乎透明的跨JVM通信。但当然它涉及指定其他JVM的主机名和通信端口,因此您需要做一些工作才能使其正常工作。