运行多个JVM

时间:2010-01-08 19:48:21

标签: java jvm

如何在一台计算机上运行多个JVM?如何在不同的JVM中调用方法?

9 个答案:

答案 0 :(得分:18)

  

如何在一台计算机上运行多个JVM?

只需启动多个java进程。

  

如何在不同的JVM中调用方法?

使用任何类型的RPC框架(RMI,EJB,Web服务等)。

答案 1 :(得分:7)

嘿,我想你可能会对如何运行JVM感到困惑。每次执行java.exe或javaw.exe都会为您创建一个新的JVM实例。如果使用两个java.exe命令运行两个程序,则运行两个JVM

答案 2 :(得分:3)

是的,您可以在同一台计算机上运行多个VM。您只需指定要运行的那个。

当你说你想调用在不同JVM上运行的方法时,你的意思是让它们互相交谈吗?如果有,请查看Remote Method Invocation (RMI)

答案 3 :(得分:3)

这听起来像是在谈论在不同JVM下运行的单个应用程序中使用不同的方法。这是不可能的。

如果要为不同的应用程序使用不同的JVM,则必须在启动应用程序时手动指定特定JRE的路径。例如:

$PATH_TO_FIRST_JVM/bin/java -jar application1.jar
$PATH_TO_DIFFERNT_JVM/bin/java -jar application2.jar

答案 4 :(得分:3)

你可以在一台机器上运行尽可能多的jvm,因为每个java.exe或javaw.exe都会为新的jvm加注星标。

关于调用方法,你可以使用RMI。

答案 5 :(得分:1)

这没有任何意义。

  1. 安装不同的JVM很简单,只需安装各种JRE,JDK等。

  2. 要执行不同的操作,您可以在每次安装时使用正确的java命令。许多项目都依赖于JAVA_HOME进行此设置。

  3. 如果您在浏览器中讨论applet中的多个JVM,我无法帮助您。

答案 6 :(得分:1)

你可以在同一台机器上启动几个java程序(例如Eclipse是一个java程序,它可以启动你的程序),但没有什么可以在不同的JVM之间提供简单的通信。

RMI是Sun提供的机制,用于在不同或同一台机器上提供JVM之间的通信,但是正常工作并不是事实上的方法。一个重要的功能是它可以在JVM之间移动对象,即使目标JVM中不存在相应的类。

http://java.sun.com/javase/technologies/core/basic/rmi/index.jsp

否则,您可以考虑网格软件,Terracotta或任何远程过程调用机制。这些通常是基于TCP / IP的。您可能想要编辑您的问题,以描述您想要完成的内容,以了解如何实现目标。

答案 7 :(得分:1)

如何在一台计算机上运行多个JVM?如何在不同的JVM中调用方法?

RMI通常是这样做的。我也想做同样的事情,但没有RMI。轻松通过32位JVM上的1.5g天花板,在Windows上是唯一可以播放视频的天线(JMF + FOB,VLCJ,GStreamer全部用Oracles 64bit JVM失败,Harmony尚未准备就绪,给了它一个机会,不是'很漂亮)。想象视频可以在另一个JVM中运行,并且可能通过某些JNI以某种方式共享对象。

答案 8 :(得分:-1)

这里有几个富有洞察力的答案,但我感兴趣的是运行多个JVM的驱动要求。为什么你认为你需要这样做?如果您正在寻找并行处理,您可能需要考虑多线程应用程序而不是运行多个JVM。由于每个JVM很可能需要大量资源,并且您希望在执行路径之间进行通信,因此这可能是满足您需求的更好解决方案。