Установленный jvm - 64-разрядный или 32-разрядный

Как я могу узнать, установлена ​​ли установленная версия Java 64 bit или 32 bit?

Ответы

Ответ 1

Вы можете получить свойство os.arch:

String osArch = System.getProperty("os.arch");

Это расскажет вам об архитектуре ОС, а не в точности о VM.

Sun JRE имеют следующие свойства (значения из моей машины), которые могут быть полезны:

sun.arch.data.model : 32
sun.cpu.isalist : pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86

Но имейте в виду, что они не будут работать на виртуальных машинах других производителей. Таким образом, вы можете также найти такие свойства других виртуальных машин, чтобы вы не зависели от поставщиков.

Ответ 2

Введите java -версию в командной строке. Если он будет 64-битным, это скажет так, в противном случае это 32-бит.

например.

64 бит Oracle/Mac OS X

$ java -version

java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02-279-10M3065)
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01-279, mixed mode)

32 бит Oracle/Mac OS X (клиент)

$ java -version

java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02-279-10M3065)
Java HotSpot(TM) Client VM (build 16.3-b01-279, mixed mode, sharing)

32 бит Oracle/Mac OS X (сервер)

$ java -server -version

java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02-279-10M3065)
Java HotSpot(TM) Server VM (build 16.3-b01-279, mixed mode)

64 бит OpenJDK Ubuntu

$ java -version

java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.1) (6b20-1.9.1-1ubuntu3)
OpenJDK 64-Bit Server VM (build 17.0-b16, mixed mode)

32 бит Soylatte Mac OS X

$ java -version

java version "1.6.0_03-p3"
Java(TM) SE Runtime Environment (build 1.6.0_03-p3-landonf_19_aug_2008_14_55-b00)
Java HotSpot(TM) Client VM (build 1.6.0_03-p3-landonf_19_aug_2008_14_55-b00, mixed mode)

32 бит OpenJDK Mac OS X

$ java -version

openjdk version "1.6.0-internal"
OpenJDK Runtime Environment (build 1.6.0-internal-landonf_17_may_2009_13_58-b00)
OpenJDK Client VM (build 11.0-b17, mixed mode)

64 бит IBM Linux

$ java -version

java version "1.6.0"
Java(TM) SE Runtime Environment (build pxa6460sr8fp1-20100624_01(SR8 FP1))
IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 Linux amd64-64 jvmxa6460sr8ifx-20100609_59383 (JIT enabled, AOT enabled)

Ответ 3

У меня установлены как 32-разрядные, так и 64-разрядные версии Java, но java -version говорит только о 64-битном сервере (смешанный режим). Таким образом, это не сработает, если у вас установлено несколько (и предыдущих) версий Java.

Есть еще один способ проверить, что я только что понял: для Windows, если у вас установлена ​​32-разрядная версия, она будет находиться в c:\Program Files (x86)\java\jre7 (или независимо от того, какая версия Java установлена). Я также вижу, что у меня есть папка jre6, которая немного сбивает с толку, потому что я думал, что уже удалил ее.

И для 64-разрядной версии это будет в c:\Program Files\java (где все 64-разрядные приложения установлены).