Запуск нескольких JVM - PullRequest
       14

Запуск нескольких JVM

10 голосов
/ 08 января 2010

Как вы запускаете несколько JVM на одном компьютере? Как вы вызываете методы в другой JVM?

Ответы [ 9 ]

18 голосов
/ 08 января 2010

Как вы запускаете несколько JVM на одном компьютере?

Просто запустите несколько java процессов.

Как вы вызываете методы в другой JVM?

Используйте любой тип среды RPC (RMI, EJB, веб-сервис и т. Д.).

7 голосов
/ 08 января 2010

Эй, я думаю, что вы можете быть смущены тем, как запустить JVM. каждое выполнение java.exe или javaw.exe создаст для вас новый экземпляр JVM. если вы запускаете две программы с помощью двух команд java.exe, то у вас есть две JVM, работающие

3 голосов
/ 08 января 2010

вы можете иметь столько же jvm, сколько сможете на одной машине, так как каждый java.exe или javaw.exe запустит новый jvm.

и относительно вызова метода вы можете использовать RMI.

3 голосов
/ 08 января 2010

Звучит так, будто вы говорите о том, чтобы разные методы в одном приложении выполнялись под разными JVM. Это невозможно.

Если вы хотите использовать разные JVM для разных приложений, вам придется вручную указывать путь к конкретной JRE при запуске приложения. Пример:

$PATH_TO_FIRST_JVM/bin/java -jar application1.jar
$PATH_TO_DIFFERNT_JVM/bin/java -jar application2.jar
3 голосов
/ 08 января 2010

Да, вы можете запустить несколько виртуальных машин на одном компьютере. Вам просто нужно указать, какой из них запустить.

Когда вы говорите, что хотите вызывать методы, работающие на разных JVM, вы имеете в виду, что они общаются друг с другом? Если так, посмотрите на Удаленный вызов метода (RMI) .

1 голос
/ 26 апреля 2011

Как вы запускаете несколько JVM на одном компьютере? Как вы вызываете методы в другой JVM?

RMI, как это обычно делается. Я также хочу сделать то же самое, но без RMI. Простой способ преодолеть потолок в 1,5 г на 32-битных JVM, которые на Windows - единственные, кто может воспроизводить видео (JMF + Fobs, VLCJ, GStreamer все терпят неудачу с 64-битной JVM Oracles, Harmony еще не готова, попробовала, не не очень) Я подумал, что видео может работать в другой JVM и каким-то образом обмениваться объектами, возможно, через какой-то JNI.

1 голос
/ 09 января 2010

Вы можете запустить несколько java-программ на одном компьютере (например, Eclipse - это java-программа, которая может запускать вашу программу), но нет ничего, что обеспечивало бы легкую связь между различными JVM.

RMI - это механизм, который Sun обеспечивает для обеспечения связи между JVM на разных или одних и тех же машинах, но это не тривиально, чтобы правильно работать, и не появилось как фактический способ сделать это. Важным средством является то, что он может перемещать объекты между JVM, даже если соответствующие классы отсутствуют в целевой JVM.

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

В противном случае вы можете рассмотреть сетевое программное обеспечение, Terracotta или любой механизм удаленного вызова процедур. Обычно они основаны на TCP / IP. Вы можете отредактировать свой вопрос, чтобы описать, чего вы хотите достичь, чтобы получить представление о том, как этого достичь.

1 голос
/ 08 января 2010

Это не имеет никакого смысла.

  1. Легко установить различные JVM, просто установите различные JRE, JDK и т. Д.

  2. Чтобы выполнить другой, вы должны использовать правильную команду Java из каждой установки. Многие проекты используют JAVA_HOME для этой настройки.

  3. Если вы говорите о нескольких JVM в браузере для апплетов, я не могу вам помочь.

0 голосов
/ 09 января 2010

Здесь есть несколько проницательных ответов, но что-то, что меня интересует, является основным требованием для запуска нескольких JVM. Почему вы считаете, что вам нужно это сделать? Если вы ищете параллельную обработку, вы можете рассмотреть многопоточное приложение, а не запускать несколько JVM. Поскольку каждая JVM может потребовать значительных ресурсов, и вы хотели бы иметь связь между путями выполнения, это может быть лучшим решением для ваших нужд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...