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

FlowLayout выложит Component s слева направо (или справа налево), завернув их, если потребуется. Если вы хотите явно задать размер каждого JButton, вы должны использовать setPreferredSize, а не setSize, поскольку менеджеры макета обычно используют минимальные, предпочтительные и максимальные размеры при выполнении макета.

Свойства размера весьма запутанны. Здесь есть интересная статья . В частности, обратите внимание:

Сохраняются ли свойства размера?

Некоторые менеджеры макетов, такие как GridLayout, полностью игнорируют свойства размера.

FlowLayout, пытается оценить оба размера preferredSize и, возможно, не нуждается в соблюдении минимального размера или максимального размера.

545
задан Hearen 23 March 2019 в 07:29
поделиться

3 ответа

Вы извлекаете свойство System System , которые отмечают укус этой JVM с:

System.getProperty("sun.arch.data.model");

возможными результатами:

  • «32» - 32-битный JVM
  • «64» - 64-битный JVM
  • «Неизвестный» - неизвестен JVM

, как описано в FAQ :

:

при записи кода Java Как я могу различить 32 и 64-разрядную работу?

Нет публичного API, который позволяет различать 32 и 64-разрядную работу. Подумайте о 64-битной как просто другая платформа в пишете один раз, управляйте традицией. Однако, если вы хотите написать код, который является конкретной платформой (позор на вас), системное свойство Sun.arch.data.Model имеет значение «32», «64» или «неизвестно».

Пример, где это может потребоваться, это если ваш код Java зависит от собственных библиотек, и вам нужно определить, будет ли загружать 32- или 64-битную версию библиотек в запуске.

311
ответ дан 22 November 2019 в 22:18
поделиться
-

Я установил 32-битный JVM и повторил его снова, выглядит следующее, говорит вам, не означает, что утоляция JVM, а не арка ОС:

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

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

34
ответ дан 22 November 2019 в 22:18
поделиться

Для определенных версий Java вы можете проверить укуту JVM из командной строки с флагами -D32 и -D64 .

$ java -help
...
    -d32          use a 32-bit data model if available
    -d64          use a 64-bit data model if available

Чтобы проверить на 64-битный JVM, запустите:

$ java -d64 -version

, если это не 64-битный JVM, вы получите это:

Error: This Java instance does not support a 64-bit JVM.
Please install the desired version.

аналогично, чтобы проверить на 32-разрядную JVM, запустить:

$ java -d32 -version

Если это не 32-битный JVM, вы получите это:

Error: This Java instance does not support a 32-bit JVM.
Please install the desired version.

Эти флаги были добавлены в Java 7, устарели в Java 9, удалены в Java 10 и больше не доступен на современных версиях Java.

689
ответ дан 22 November 2019 в 22:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: