java - télécharger - Comment puis-je savoir si je cours en JVM 64 bits ou en JVM 32 bits(à partir d'un programme)?




télécharger java 64 bits (6)

Comment puis-je savoir si la JVM de mon application s'exécute en 32 bits ou en 64 bits? Plus précisément, quelle fonction ou quelle préférence dois-je accéder pour détecter cela dans le programme?


Informations complémentaires:

Sur un processus en cours, vous pouvez utiliser (au moins avec certaines versions récentes de Sun JDK5 / 6):

$ /opt/java1.5/bin/jinfo -sysprops 14680 | grep sun.arch.data.model
Attaching to process ID 14680, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 1.5.0_16-b02
sun.arch.data.model = 32

où 14680 est le PID de jvm exécutant l'application. "os.arch" fonctionne aussi.

D'autres scénarios sont également supportés:

jinfo [ option ] pid
jinfo [ option ] executable core
jinfo [ option ] [[email protected]]remote-hostname-or-IP 

Cependant, considérez aussi cette note:

NOTE : cet utilitaire n'est pas pris en charge et peut être disponible dans les versions ultérieures du JDK Dans les systèmes Windows où dbgent.dll n'est pas présent, les outils de débogage pour Windows doivent être installés pour que ces outils fonctionnent. La variable d'environnement PATH doit contenir l'emplacement de jvm.dll utilisé par le processus cible ou l'emplacement à partir duquel le fichier Crash Dump a été produit. "


Pour obtenir la version de JVM en cours d'exécution du programme

System.out.println(Runtime.class.getPackage().getImplementationVersion());

Sous Linux, vous pouvez obtenir des informations d'en-tête ELF en utilisant l'une des deux commandes suivantes:

file {YOUR_JRE_LOCATION_HERE}/bin/java

o / p: Exécutable ELB 64 bits ELF, AMD x86-64, version 1 (SYSV), pour GNU / Linux 2.4.0, lié dynamiquement (utilise des librairies partagées), pour GNU / Linux 2.4.0, non déshabillé

ou

readelf -h {YOUR_JRE_LOCATION_HERE}/bin/java | grep 'Class'

o / p: Classe: ELF 64


Sous Windows 7 dans le " Panneau de configuration " sous " Programmes | Programmes et fonctionnalités " les variantes 64 bits de JRE et JDK sont listées avec " 64 bits " entre parenthèses (par exemple " Java SE Development Kit 7 Update 65 (64 bits ) "), tandis que pour les variantes 32 bits, la variante n'est pas mentionnée entre parenthèses (par exemple" Java SE Development Kit 8 Update 60 ").


Tapez simplement java -version dans votre console.

Si une version 64 bits est en cours d'exécution, vous recevrez un message du type:

java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) 64-Bit Server VM (build 16.0-b13, mixed mode)

Une version 32 bits montrera quelque chose de similaire à:

java version "1.6.0_41"
Java(TM) SE Runtime Environment (build 1.6.0_41-b02)
Java HotSpot(TM) Client VM (build 20.14-b01, mixed mode, sharing)

Remarque Client au lieu de 64-Bit Server dans la troisième ligne. La partie Client/Server n'est pas pertinente, c'est l'absence du 64-Bit qui compte.

Si plusieurs versions de Java sont installées sur votre système, accédez au dossier / bin de la version Java que vous voulez vérifier, et tapez java -version cet java -version .


Vous pouvez essayer sur la ligne de commande:

java -d64 -version

Si ce n'est pas une version 64 bits, vous obtiendrez un message ressemblant à:

Cette instance Java ne prend pas en charge une machine virtuelle Java 64 bits. Veuillez installer la version souhaitée.

Consultez les options d'aide de la JVM pour plus d'informations java -help





32-bit