¿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
Respuesta
¿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.).
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).
también vea el entrenamiento en línea de Sun en RMI: http://java.sun.com/developer/ onlineTraining/rmi/RMI.html –
Si necesita comunicarse entre varias JVM, use UdpInvoker http://code.google.com/p/udp-invoker/. – Eflite
Esto no tiene sentido.
Es fácil de instalar diferentes JVM, sólo tiene que instalar los diversos JRE, JDK, etc.
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.
Si está hablando de varias JVM en un navegador para applets, no puedo ayudarlo.
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
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
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.
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í.
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.
¿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.
- 1. ¿Cuál es la diferencia entre JVM Spec, implementación JVM, JVM en tiempo de ejecución
- 2. Enviando señales a una JVM en ejecución
- 3. Ejecución del código nativo por JVM/CLR
- 4. Tomar una instantánea del tiempo de ejecución optimizado de JVM
- 5. Lenguaje basado en JVM sin tiempo de ejecución de idioma
- 6. Obtener los parámetros de una JVM en ejecución
- 7. Lista de JVM en ejecución en el host local
- 8. ¿Cada ejecución del comando java inicia una JVM por separado?
- 9. Ejecución de Emacs de forma remota entre varias máquinas
- 10. ¿Cómo combinar varias configuraciones de ejecución en Intellij juntos?
- 11. NUnit: La ejecución de varias afirmaciones en una sola prueba
- 12. varias condiciones en lambda expresiones en tiempo de ejecución C#
- 13. Ejecución de pruebas junit paralelas en varias máquinas remotas
- 14. jvm design decision
- 15. Determinación de la ubicación del ejecutable de JVM durante el tiempo de ejecución
- 16. ¿Se podría hacer que el modelo STM de Clojure funcione con varias JVM?
- 17. Configuración del tamaño del almacenamiento dinámico de JVM en el tiempo de ejecución
- 18. ¿Cómo generan los lenguajes/tiempos de ejecución basados en JVM un bytecode de Java?
- 19. ¿Para qué Sun JVM crea instancias de sun.reflect.DelegatingClassLoader en tiempo de ejecución?
- 20. Bibliotecas de Precisión Arbitrarias JVM
- 21. Impresión de todas las banderas de JVM
- 22. ¿Cómo se diferencian las "JVM modernas" de las JVM antiguas?
- 23. Ehcache multiple JVM - opensource?
- 24. Problemas de memoria JVM
- 25. Instancias de JVM
- 26. Configuración de Eclipse JVM
- 27. Comprensión de JVM Better
- 28. Adjuntar una copia de clojure/scala a una JVM en ejecución
- 29. ¿Hay algún plan para que la JVM admita los genéricos en tiempo de ejecución?
- 30. Cómo encontrar una instancia de clase en una JVM en ejecución
@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. –
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 :( –
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