2012-05-22 7 views
14

He instalado una Java de 64 bits en una máquina Centos de 64 bits. Mi consulta es que si no especifico la opción -d64, ¿la JVM se ejecutará en el modo de 32 bits, incluso si no hay una JVM de 32 bits instalada?Se ejecutará una JVM de 64 bits en modo de 64 bits cuando no se especifique ninguna opción como -d32 o -d64

También estaba un poco curioso si podemos usar la opción -d64 con "javac". En caso afirmativo, ¿qué implica o dónde podría usarse? Me encontré con esto al leer this article.

Gracias

Respuesta

2

Del documento Oracle vinculadas a:

¿Cómo se selecciona entre el 32 y el funcionamiento de 64 bits? ¿Cuál es el valor predeterminado?

Las opciones -d32 y -d64 se han agregado al iniciador de Java para especificar si el programa se ejecutará en un entorno de 32 o 64 bits. En Solaris, estos corresponden a los modelos de datos ILP32 y LP64, respectivamente. Dado que Solaris tiene una implementación de J2SE de 32 y 64 bits incluida en la misma instalación de Java, puede especificar cualquiera de las versiones. Si no se especifica ni -d32 ni -d64, el valor predeterminado es ejecutar en un entorno de 32 bits.
En raras ocasiones será necesario ejecutar otros comandos de Java (javac, javadoc, etc.) en un entorno de 64 bits. Sin embargo, las opciones -d32/-d64 se pueden pasar a estos comandos y luego al iniciador de Java utilizando la opción de prefijo -J establecida (por ejemplo: -J-d64).
Todas las demás plataformas (Windows y Linux) contienen paquetes de instalación separados de 32 y 64 bits. Si ambos paquetes están instalados en un sistema, seleccione uno u otro agregando el directorio "bin" apropiado a su ruta. Por consistencia, las implementaciones de Java en Linux aceptan la opción -d64.

(el énfasis es mío)

Así, de acuerdo con el documento que está conectado, el valor por defecto es ejecutar en un JRE de 32 bits, y es posible ejecutar javac en un JRE de 64 bits pasando -J-d64 en lugar de simplemente -d64.

Sin embargo, tenga en cuenta que este documento también dice que se aplica a Java 1.4, y dice nada acerca de las versiones más recientes de Java.

+0

Eso significa que a menos que se especifique -d64, la JVM de 64 bits en una máquina de 64 bits se ejecutará en modo de 32 bits ... ¿verdad? –

+0

@ tm.sauron De acuerdo con ese documento para Java 1.4, sí. –

+0

Pero @ tm.sauron ejecuta CentOS que es Linux. Como el último párrafo (Todas las demás plataformas ...), parece que, de forma predeterminada, d64 está habilitado si instala un JRE de 64 bits. Sonar como d32 y d64 solo es significativo para Solaris. – Smartmarkey

3

La selección del modelo de datos (bits) para el JRE es restringir el funcionamiento de la aplicación para que solo se ejecute en un modo. El código de bytes de Java está diseñado para funcionar en ambos modelos de datos, por lo que para las aplicaciones Java 100% puras, funcionará de acuerdo con el comportamiento y los beneficios de cada arquitectura.

Pero si su aplicación utiliza libs nativos que funcionan solo en un modo, entonces la aplicación fallará en la no soportada. Para eso, debe indicar explícitamente en qué modo se puede ejecutar.

Cuando configura -d32 o -d64 el JRE no iniciará su aplicación si no se puede ejecutar en el modo seleccionado.

+1

entonces, significa que si en una máquina de 64 bits ejecuto código java sin especificar ninguna opción (-d32 o -d64), se ejecutará en modo de 64 bits ......... ¿verdad? –

+1

Derecha. ¡Esa es la belleza de java! –

Cuestiones relacionadas