2010-01-08 10 views
8

¿Cómo se ejecutan varias JVM en una sola máquina? ¿Cómo llamas a los métodos en una JVM diferente?Ejecución de varias JVM

+0

@yx: No estoy seguro, pero creo que la pregunta original fue sobre cómo "comunicar" entre dos procesos de Java que se ejecutan en diferentes máquinas virtuales. –

+0

tal vez lo leí mal, he editado mi edición, tuve que deshacerme de la horrible gramática: "Es imposible", así que podría haberlo hecho demasiado rápido :( –

+0

Por favor, explíqueme lo que quiere lograr. Esta pregunta es una manera de abrirse a la interpretación, no obtendrá ninguna respuesta útil como esta. – extraneon

Respuesta

17

¿Cómo ejecutar varias JVM en una sola máquina?

Simplemente inicie múltiples procesos java.

¿Cómo se llaman los métodos en una JVM diferente?

Utilice cualquier tipo de marco RPC (RMI, EJB, servicio web, etc.).

3

Sí, puede ejecutar varias máquinas virtuales en la misma máquina. Solo necesita especificar cuál ejecutar.

Cuando dices que quieres llamar a métodos que se ejecutan en diferentes JVM, ¿te refieres a que hablen entre ellos? Si es así, mira Remote Method Invocation (RMI).

+0

también vea el entrenamiento en línea de Sun en RMI: http://java.sun.com/developer/ onlineTraining/rmi/RMI.html –

+0

Si necesita comunicarse entre varias JVM, use UdpInvoker http://code.google.com/p/udp-invoker/. – Eflite

1

Esto no tiene sentido.

  1. Es fácil de instalar diferentes JVM, sólo tiene que instalar los diversos JRE, JDK, etc.

  2. Para ejecutar el diferente, se utiliza el comando adecuado java de cada instalación. Muchos proyectos confían en JAVA_HOME para esta configuración.

  3. Si está hablando de varias JVM en un navegador para applets, no puedo ayudarlo.

7

Oye, creo que se puede confundir con la forma de ejecutar JVM. cada ejecución de java.exe o javaw.exe creará una nueva instancia de JVM para usted. Si ejecuta dos programas utilizando dos comandos java.exe, entonces tiene dos JVM que ejecutan

3

Parece que habla de tener diferentes métodos en una sola aplicación que se ejecutan bajo diferentes JVM. Esto no es posible.

Si desea utilizar diferentes JVM para diferentes aplicaciones, deberá especificar manualmente la ruta al JRE en particular cuando inicie una aplicación. Ejemplo:

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

que puede tener tantas JVM como se puede correr en una sola máquina como cada java.exe o javaw.exe protagonizará una nueva JVM.

y con respecto a llamar a un método puede usar RMI.

1

Puede ejecutar varios programas Java en la misma máquina (por ejemplo, Eclipse es un programa Java, que puede iniciar su programa), pero no hay nada que facilite la comunicación entre las diferentes JVM.

RMI es el mecanismo que Sun proporciona para proporcionar comunicación entre JVM en una máquina diferente o la misma, pero no es trivial para ponerse en funcionamiento correctamente y no ha surgido como una forma de facto de hacerlo. Una instalación importante es que puede mover objetos entre las JVM incluso si las clases correspondientes no están presentes en la JVM objetivo.

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

De lo contrario puede considerar el software de rejilla, terracota, o cualquier mecanismo de llamada a procedimiento remoto. Por lo general, se basan en TCP/IP. Es posible que desee editar su pregunta para describir lo que desea lograr para tener una idea de cómo llegar allí.

0

Aquí hay varias respuestas interesantes, pero algo que me interesa es el requisito de manejo para ejecutar varias JVM. ¿Por qué crees que tienes que hacer esto? Si está buscando un procesamiento paralelo, es posible que desee considerar una aplicación multiproceso en lugar de ejecutar varias JVM. Como es muy probable que cada JVM requiera recursos importantes y le gustaría tener comunicación entre las rutas de ejecución, es muy posible que esta sea una mejor solución para sus necesidades.

1

¿Cómo se ejecutan varias JVM en una sola máquina? ¿Cómo llamas a los métodos en una JVM diferente?

RMI es como esto se hace generalmente. También quiero hacer lo mismo pero sin RMI. Una manera fácil de superar el techo de 1,5 g en JVM de 32 bits que solo son capaces de reproducir video en las ventanas (JMF + Fobs, VLCJ, GStreamer fallan todos con Oracles 64bit JVM, Harmony aún no está listo, lo disparó, no fue t bonita). Pensé que el video podría ejecutarse en otra JVM y de alguna manera compartir los objetos probablemente a través de algún JNI.

Cuestiones relacionadas