Программно определяю операционную систему в Java? - PullRequest
1 голос
/ 07 августа 2020

Я изучаю особенности системы следующим образом:

System.getProperty("os.arch")

Вывод для 64-битного компьютера: amd64

но когда я использую 32-битную java версию на 64-битном компьютере, результат: x86

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

Спасибо

1 Ответ

1 голос
/ 07 августа 2020

Этот topi c соответствует Java Учебным пособиям от Oracle.

  • "os.arch" Архитектура операционной системы
  • "os.name" Название операционной системы
  • "os.version" Версия операционной системы

Значения для os.arch объяснены в Википедии.

  • x86 обозначает 32-разрядную архитектуру, первоначально от Intel .
  • amd64 обозначает 64-разрядное расширение этой архитектуры, изобретенное AMD , позже также принят Intel.

(Кстати, существуют и другие архитектуры, такие как ARM .)

Первое означает, что Java работает на 32-битная машина, или Java работает на 64-битной машине в 32-битном режиме совместимости.

Второе означает, что Java работает в 64-битном режиме на 64-битной машине.

Как узнать правильный результат, даже если на 64-битном компьютере установлено java 32-битное java?

(А) Я не знаю. (B) Ваш вопрос спорный. 32-разрядная версия JVM, работающая на 64-разрядной машине, имеет ограничения 32-разрядной машины. JVM видит только 32-битную машину. С точки зрения Java, тот факт, что аппаратное обеспечение хоста и ОС могут быть 64-битными, не имеет значения.

...