Установленный 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-разрядные приложения установлены).