2011-05-29 22 views
8

Estoy desarrollando una aplicación Java, utilizando una biblioteca nativa de 32 bits a la que estoy accediendo a través de JNA. En MacOS X Snow Leopard es posible pasar el parámetro "-d32" a la JVM, lo que hace que la JVM se inicie en el modo de 32 bits. Tengo una aplicación de inicio, que establece algunas variables de entorno y luego inicia la aplicación principal. Este es también el lugar donde se decide lanzar la aplicación principal con el modificador -d32, si el programa se ejecuta en MacOS.32Bit Native Code, JNA y 64Bit JVM

Así que aquí está mi pregunta: ¿Hay alguna manera similar de resolver esto en Windows o Linux?

Sería lo mejor si fuera posible ejecutar el 64Bit JVM en modo de 32 bits. Pero no tengo miedo de decirle a mis usuarios que instalen una JVM de 32 bits adicional, ese no es el problema. El problema es que tendría que decirle a mi aplicación de inicio dónde se puede encontrar la JVM de 32 bits, ya que la primera en la variable PATH podría ser la de 64 bits.

Gracias de antemano,

aRestless

+1

En Linux, al menos, puede pasar -d32 (o -d64) al iniciador de JVM para indicarle que utilice una JVM de 32 bits (o de 64 bits), igual que en OSX. Me imagino que las ventanas serían similares –

Respuesta

4

Si combinas la JVM de 32 bits con su aplicación, se puede ejecutar de forma totalmente independiente de cualquier ruta de JRE y el sistema instalado. Esto está permitido por Java SE 6: http://java.sun.com/javase/6/jdk-6u2-license.txt. También puede iniciar JVM cargando jvm.dll, mostrando así solo su imagen de iniciador en el administrador de tareas. Incluso puede evitar escribir un iniciador nativo si usa WinRun4J: http://winrun4j.sourceforge.net/

Espero que ayude!

+0

De acuerdo, a expensas de una instalación más grande, esto soluciona muchos dolores de cabeza con las versiones de JVM en mi experiencia. –