¿Puedo ejecutar más de una JVM? En caso afirmativo, ¿cómo puedo encontrar una clase en particular cargada en qué JVM?¿Puedo ejecutar más de una JVM en mi única PC?
Respuesta
No está del todo claro a qué se refiere, pero:
- Usted puede tener más de una máquina virtual (versión/marca, etc) instalado en la misma máquina
- Puede ejecutar más de una
java
proceso, ya sea de la misma versión de JVM o diferente
A menos que esté ejecutando un agente de depuración o algo similar, no conozco ninguna forma de preguntarle a un proceso de JVM si está cargado en una clase en particular. Parece un requisito extraño: ¿por qué quieres hacer esto?
Puede ejecutar la mayor cantidad de JVM como se puede encajar en el disco y en la memoria :)
Siempre que se inicia una aplicación Java, se intenta por primera vez la JVM y luego diciéndole qué aplicación se ejecute. La respuesta a "qué JVM" es simplemente: ¡la JVM con la que cargó la aplicación!
Es posible hacer algunos trucos esotéricos con cargadores de clases que serían una excepción a lo que acabo de decir. Pero es cierto en el caso general y en la mayoría de todas las aplicaciones.
Múltiple JRE (Java Runtime Enviroment) es muy posible. Lo hago El hecho es que JVM no siempre se ejecuta en su sistema. Es como cualquier otro software. Cuando ejecuta un archivo jar, comienza a ejecutarse.
El JRE por omisión se establece en variables de entorno como JAVA_HOME (haz clic derecho en Mi PC -> Propiedades -> pestaña Opciones avanzadas -> Variables de entorno)
Para ejecutar un archivo JAR que sólo tiene que ejecutar este comando:
C: \ archivos de Programa \ Java \ j2re1.4.2_04 \ bin \ javaw.exe" -jar Myfile.jar
Se puede utilizar cualquier otro jre javaw para ejecutar un archivo jar.
Tenga en cuenta que j2re1.4.2_04 puede no ser su versión jre.
Editar:
Todas las clases en una corrida archivo jar en una única JVM. Como puedes adivinar Vea su JAVA_HOME, es el valor predeterminado.
¿Puedo ejecutar más de una JVM?
Sí - acaba de ejecutar el proceso de 'java'
Si sí, entonces cómo puedo encontrar una clase particular se carga en la que JVM?
El programa 'JPS' que se distribuye con el SDK Java mostrará una lista de todos los procesos Java (JVM) ruinning en su máquina, la clase principal que está siendo ejecutado por cada JVM y la ruta de clase. Tendrá que ver qué jarras o clases hay en cada ruta de clases para averiguar si una clase está cargada o no.
intente ejecutar
jps -mlvV
y ver lo que se obtiene
Sí, puede ejecutar múltiples de JVM en una sola máquina.
Sun empaqueta las herramientas para ejecutar el jvm de diferentes formas. Por lo general, tiene un kit de desarrollo de java (jdk) o edición estándar de java (jse) instalado como el predeterminado. Esos paquetes incluyen un programa java
que se invoca para iniciar un jvm. Además, el jdk también contiene algunos comandos adicionales (como javac
) para desarrolladores.
Puede tener múltiples jdk's y/o jse's disponibles en una sola máquina. En Windows, los paquetes jdk y jse generalmente se instalan en Program Files/java
(esto es de memoria ya que no tengo una pc a mano en este momento)
En Mac, mire en /System/Library/Frameworks/JavaVM.framework/Versions .
En Linux, utilizaría el comando which java
para determinar dónde está instalado el comando predeterminado java
(generalmente/usr/bin). Luego, haga un ls -al | grep java
(dentro de/usr/bin, por ejemplo) y observe dónde apuntan los enlaces simbólicos para averiguar dónde podrían haber otras versiones instaladas.
Una vez que haya descubierto dónde se encuentran cada una de las distintas jdk y jse en su sistema, entonces puede comenzar a averiguar qué versión de java se utiliza para iniciar cada uno de los programas.
Cada programa java se iniciará utilizando el jvm predeterminado. Abra una ventana o terminal de comandos y pruebe java -version
para determinar qué versión es la predeterminada actual.
En lugar de utilizar la versión predeterminada de java, también se pueden iniciar programas para usar una versión java específica. Por ejemplo, a veces creo un atajo de Windows personalizado para abrir Eclipse usando una versión específica de jdk.
A partir de java 5, hay una herramienta llamada jconsole que también podría ayudarlo a determinar qué programas se están ejecutando en qué versiones de jvms. Simplemente abra una consola y escriba jconsole
y debería obtener una buena GUI que muestre todos los programas que se ejecutan en el jvm predeterminado. Creo que incluso podría inspeccionar programas classpaths.
Espero que ayude, buena suerte!
Sí, puede instalar más de un jvm en su PC, porque el sistema operativo carga una instancia de jvm (no todo el jvm) en la memoria RAM. Podemos llamar a diferentes archivos jvm como JDK 1.4 o JDK 1.6 estableciendo su ruta.
Puede ejecutar tantas como desee JVM en la misma máquina. Solo necesita abrir varias ventanas CommandPrompt y ejecutar lo que desee a través de la aplicación java
o javaw
. La clase que ejecuta JVM es aquella clase que contiene el método main()
. El método Main() es lo primero que se ejecuta al iniciar alguna aplicación Java. Por supuesto, main() se encuentra en algunas de tus clases. Eso es todo.
- 1. ¿Puede correr JVM con Android también en una PC?
- 2. Ejecutar scripts de PowerShell en PC remota
- 3. ¿La manera más fácil de ejecutar una aplicación simple GLES/EGL/OpenVG en una PC?
- 4. hay una JVM independiente que se ejecuta en una PC sin ningún sistema operativo
- 5. Cómo ejecutar una prueba única de MSTEST
- 6. cómo puedo mover mi proyecto de Qt a otra PC
- 7. Cómo obtener una firma única de hardware/software desde una PC de Windows en c/C++
- 8. ¿Cómo ejecutar un comando DOS en una PC remota?
- 9. ¿Es posible obtener una identificación verdaderamente única para una instancia de JVM en particular?
- 10. Ejecutar tarea ant en diferentes jvm
- 11. Cómo hacer una llamada entrante en mi gatillo móvil una acción en mi pc
- 12. Ejecutar una instancia única de una aplicación utilizando Mutex
- 13. JVM falla al ejecutar SOAPUI en Ubuntu
- 14. ¿Cómo puedo recibir datos de una PC en un Arduino?
- 15. Ruta de instalación y despliegue de ClickOnce en mi PC
- 16. Ejecutar el método principal de Java desde una aplicación de escritorio Java en una JVM diferente
- 17. ¿Puede Silverlight ejecutar una biblioteca escrita en C++ en PC/Mac/Linux?
- 18. ¿Cuál es la forma más fácil de paralelizar mi programa C# en varias PC?
- 19. ¿Puedes escribir en [PC]?
- 20. Determine si mi PC admite HW Virtualization
- 21. ¿JVM se detuvo al ejecutar jmap?
- 22. Erlang en una JVM/CLR
- 23. ¿Cómo hacer que JVM arranque más rápido?
- 24. SQL ¿Puedo tener una restricción "condicionalmente única" en una tabla?
- 25. Más información sobre la sobrecarga de objetos en JVM
- 26. ¿Cómo puedo determinar si mi objeto ActiveRecord infringe una clave/índice de base de datos única?
- 27. ¿Cómo ejecutar validaciones de subclase en herencia de tabla única?
- 28. ¿Emular una PC vieja?
- 29. ¿Cómo puedo ejecutar una aplicación OpenGL instalada en una máquina Linux desde mi máquina Windows?
- 30. ¿Cómo puedo controlar la velocidad del ventilador de mi PC usando C++ en Vista?
¿por qué le gustaría saber qué VM tiene cargada la clase? Si sabemos que tal vez podamos darle una respuesta. – TofuBeer
Esto parece que está tratando de hacer algo que debería hacerse de otra manera. No debería necesitar saber qué clase está cargada en una JVM. –