[java] Как я могу узнать, работает ли я в 64-разрядной JVM или 32-разрядной JVM (изнутри программы)?


3 Answers

Вы можете попробовать в командной строке:

java -d64 -version

Если это не 64-разрядная версия, вы получите сообщение, которое выглядит так:

Этот экземпляр Java не поддерживает 64-битную JVM. Установите нужную версию.

Обратитесь к вариантам помощи JVM для получения дополнительной информации java -help

Question

Как узнать, работает ли JVM мое приложение в 32-разрядной или 64-разрядной версии? В частности, какую функцию или предпочтение я получаю, чтобы обнаружить это в программе?




Обновление снова :

Я установил 32-битную JVM и снова повторил ее, выглядит следующим образом: бит JVM, а не OS arch:

System.getProperty("os.arch");
#
# on a 64-bit Linux box:
# "x86" when using 32-bit JVM
# "xmd64" when using 64-bit JVM

Это было проверено как на SUN, так и на IBM JVM (32 и 64-разрядные). Очевидно, что системное свойство - это не просто арка операционной системы.




В Linux вы можете получить информацию заголовка ELF, используя одну из следующих двух команд:

file {YOUR_JRE_LOCATION_HERE}/bin/java

o / p: 64-разрядный исполняемый файл ELF 64-бит , AMD x86-64, версия 1 (SYSV), для GNU / Linux 2.4.0, динамически связанный (использует общие библиотеки), для GNU / Linux 2.4.0, не разделенный

или

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

o / p: Класс: ELF 64




В Windows 7 в « Панели управления » в разделе « Программы и программы » 64-разрядные варианты JRE & JDK перечислены в скобках « 64-разрядные » (например, « Обновление для Java SE Development Kit 7 Update 65 (64-разрядная версия) ) "), тогда как для 32-битных вариантов вариант не упоминается в круглых скобках (например, просто« Java SE Development Kit 8 Update 60 »).






Related